サードパーティのアプリケーションを使用する Java プロジェクトがあります。リソース フォルダーにライセンス ファイル (.lic 形式) を保存しています。Ant スクリプトを実行すると、このファイルが /lib/jar ディレクトリにコピーされ、サーバーで使用するプロジェクトが Jar ファイルにまとめられます。これは、システムをライブで実行するときにファイルにアクセスする必要がある場所です。フォルダ構成はこんな感じ
MyProject
src
package
AccessingClass.java
resources
File.lic
lib
jar
File.lic (upon copy from Ant)
これを行う最善の方法がわからないので、私が試した方法以外の提案はおそらく役立つでしょう. サードパーティのプロジェクトには、License.setLicense() のようなクラスにメソッドがあり、その場所への文字列またはファイルの InputStream を受け取ることができます。
私はそれにInputStreamを供給して遊んでいますが、getClass().getResourceAsStream()を呼び出すと常にnull値を取得します。ここに私が試したすべてがあります:
- getClass().getResourceAsStream("../../../lib/jar/File.lic"); getClass().getResourceAsStream("/File.lic");
そして、バックアップとして私も試しました(ローカルビルドの場合、リソースフォルダーを試すと思います):
- getClass().getResourceAsStream("../../../resources/File.lic"); getClass().getResourceAsStream("/File.lic");
このアクションを実行するためのより良い方法はありますか? または、誰かが私がしようとしていることが失敗する理由を教えてもらえますか? ありがとうございます。