でアプリケーションのリソース内に格納されているJARをロードするためにはどうすればURLClassLoader
でJARファイルをロードしようとしています。このJARファイルは、私のプロジェクトのリソースに保存されている、と私はMavenを使って自分のプロジェクトを実行しているときには、次のコードで正常に動作している:URLClassLoaderの
new URLClassLoader(
new URL[]{MyClass.class.getClassLoader().getResource("dependencies/dependency.jar")},
ClassLoader.getSystemClassLoader().getParent()
);
、私はmvn clean install
を使用してプロジェクトを構築し、私は、しようとすると、 java -jar myapp.jar
を使用して生成JARを実行すると、dependency.jar
がロードされていないようです。 dependency.jar
ファイルは、プロジェクトJAR内のdependencies/dependency.jar
に正しく保存されていますが、読み取られません。
私はそれがJARファイル内からロードすることができないことを前提としていますが、その回避策ですか?
私は解決策がgetResourceAsStream
を使用することだと思うが、私は、URLの中に、このストリームを変換する必要があります。
可能であれば、私はdependency.jar
の内容を保存するために作成した一時ファイルを伴わないだろうソリューションを使用したいと思います。
dependency.jarはjarファイルにありますか?もしそうなら正確に?それは '依存関係/ dependency.jar' –
はい、それは、私のプロジェクトからのリソースには? – AntoineB
に位置して構築されたJARに代わりにしようとしたMyClass.class.getResource(「/依存関係/ dependency.jar」)を持っているので –