ホームページ >Java >&#&チュートリアル >Java で JAR ファイル内に埋め込まれたリソースにアクセスするにはどうすればよいですか?

Java で JAR ファイル内に埋め込まれたリソースにアクセスするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-13 08:15:12147ブラウズ

How Can I Access Resources Embedded within a JAR File in Java?

Java を使用した JAR ファイル内のリソースへのアクセス

JAR ファイルを操作する場合、埋め込みリソースへのパスを取得する必要がある場合があります。ただし、

ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("config/netclient.p").getFile());

などの手法を使用してパスを取得しようとすると、指定されたファイルが見つからないことを示すエラーが発生する場合があります。この動作は Java JAR ファイル構造に固有のものです。

この結果の理由は、JAR 内に含まれるリソースがファイル システム上の個別のファイルとして必ずしも利用できるわけではないためです。これらは、ファイル システムへの直接アクセスを不可能にする方法でアーカイブ内に圧縮または保存されている可能性があります。

さらに、リソース アクセスに java.io.File に依存することは、最も効率的または移植性の高いアプローチではない可能性があります。 。代わりに、次のオプションを検討してください:

  • クラスパス リソース パスの使用: リソースへのパスをクラスパス エントリとして指定します。
classLoader.getResource("config/netclient.p")
このアプローチではリソース ストリームへのアクセスが提供されますが、ファイルは提供されませんpath.

  • リソースを一時的に抽出します: ファイル パスが絶対に必要な場合は、次を使用してリソースを一時的な場所に抽出します:
InputStream in = classLoader.getResourceAsStream("config/netclient.p");
FileOutputStream out = new FileOutputStream(new File("tmp/" + fileName));
これにより、指定された一時ディレクトリにリソースのファイル バージョンを作成できるようになります。

以上がJava で JAR ファイル内に埋め込まれたリソースにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。