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

Java JAR ファイル内のリソース パスにアクセスするにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-18 00:07:11
オリジナル
236 人が閲覧しました

How Can I Access Resource Paths Inside a Java JAR File?

Java JAR ファイル内のリソース パスの取得

Java では、JAR ファイル内にパッケージ化されたリソースにアクセスするのは困難な場合があります。リソース コンテンツのストリーミングは簡単ですが、アクセス可能なファイル パスの取得は困難な場合があります。

1 つのアプローチは、getResource メソッドを使用して File オブジェクトを作成しようとします。

ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("config/netclient.p").getFile());
ログイン後にコピー

ただし、これは多くの場合失敗します。リソースのファイル システム上に対応するファイルがない可能性があるため、FileNotFoundException が発生します。

リソースについてコンセプト

JAR ファイルは、アーカイブ内のリソースをバンドルします。これは、物理ファイルとして直接アクセスできない場合があります。クラスローダーはリソースの読み込みを処理し、ストリーム経由でアクセスを提供できます。

代替: リソース コンテンツのストリーミング

ファイル パスなしでリソース コンテンツにアクセスするには、次を使用します:

ClassLoader classLoader = getClass().getClassLoader();
PrintInputStream(classLoader.getResourceAsStream("config/netclient.p"));
ログイン後にコピー

一時ファイルオプション

File オブジェクトが不可欠な場合は、ストリームを一時ファイルにコピーすることを検討してください。

InputStream resourceStream = classLoader.getResourceAsStream("config/netclient.p");
File tempFile = File.createTempFile("resource", ".tmp");

try (OutputStream outputStream = new FileOutputStream(tempFile)) {
    resourceStream.transferTo(outputStream);
}
ログイン後にコピー

コピーしたら、必要に応じて一時ファイルを操作できます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート