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

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

Mary-Kate Olsen
リリース: 2024-12-20 13:45:10
オリジナル
826 人が閲覧しました

How Do I Access Resources Within a Java JAR File?

Java JAR ファイル内のリソース パスへのアクセス

Java JAR ファイル内に格納されているリソースを操作する場合、リソースへのパスを取得することができます。挑戦的。ファイル システムに保存されている通常のファイルとは異なり、JAR 内のリソースには、必ずしも直接対応するファイルがあるとは限りません。

提供されているコード スニペットは、この問題を示しています。

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

このコードの結果は、リソースがファイル システム上の物理ファイルとしてアクセスできないため、FileNotFoundException が発生します。 JAR ファイルが個別のファイルに展開されていない可能性があり、クラスローダー自体がリソースへのファイル ハンドルを提供していない可能性があります。

代替ソリューション

コンテンツを取得するにはJAR ファイル内のリソースを削除するには、別のアプローチを使用することもできます。 classLoader.getResourceAsStream():

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

このコードは、ファイル パスへのアクセスを必要とせず、リソースの内容を直接読み取り、出力します。リソースにファイルとしてアクセスすることがどうしても必要な場合は、ストリームを一時ファイルにコピーできます:

File tempFile = File.createTempFile("temp", null);
try (
    InputStream inputStream = classLoader.getResourceAsStream("config/netclient.p");
    OutputStream outputStream = new FileOutputStream(tempFile);
) {
    IOUtils.copy(inputStream, outputStream);
}
ログイン後にコピー

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

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