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

Barbara Streisand
リリース: 2024-11-06 16:36:02
オリジナル
542 人が閲覧しました

How to Access Resources from JAR Files in Java?

JAR ファイルからのリソースのロード

アプリケーションでは、WinProcessor.class.getResource("repository") を使用してリソースをロードしています。 toString()。IDE から実行する場合はファイル パスを提供しますが、JAR ファイルとして実行する場合は JAR URL を返します。この不一致は、JAR ファイルに圧縮およびパッケージ化された形式のリソースが含まれているために発生します。

JAR へのリソースのロードについて

アプリケーションを JAR ファイルにパッケージ化すると、その内容がリソースを含むファイルはアーカイブ内に保存されます。 JAR ファイル内からリソースにアクセスしようとすると、JVM はそのリソースをファイル システム内のファイルとは異なる方法で扱います。 getResource メソッドは、JAR 内のリソースの場所を指す URL を返します。

解決策: getResourceAsStream を使用する

この問題を解決するには、getResourceAsStream の代わりに getResourceAsStream を使用することをお勧めします。リソースを取得します。 getResourceAsStream は、JAR ファイルからリソースの内容を直接読み取ることができるようにする InputStream を返します。次に、InputStream を使用して、ConfigurationContext などの必要なオブジェクトを作成したり、システム プロパティを設定したりできます。

getResourceAsStream を使用した更新された例を次に示します。

InputStream repositoryInputStream = WinProcessor.class.getResourceAsStream("repository");
ConfigurationContext ctx = (ConfigurationContext) ConfigurationContextFactory.createConfigurationContextFromFileSystem(repositoryInputStream, null);

InputStream fileNameInputStream = WinProcessor.class.getResourceAsStream("file_name");
System.setProperty("javax.net.ssl.trustStore", fileNameString);
ログイン後にコピー

getResourceAsStream を使用すると、次のような問題を回避できます。 IDE から実行する場合と JAR ファイルとして実行する場合のパスの違いの問題。 InputStream は JAR 内のリソースの場所を正しくポイントしているため、その内容にアクセスできます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!