ホームページ  >  記事  >  Java  >  JAR 内の埋め込みリソースに一貫してアクセスするにはどうすればよいですか?

JAR 内の埋め込みリソースに一貫してアクセスするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-06 08:26:02838ブラウズ

How to access embedded resources in a JAR consistently?

JAR からのリソースのロード

JAR アーカイブ内に埋め込まれたリソースにアクセスするとき、開発者は通常、IDE 中に取得したリソース パス間の不一致に遭遇します。実行時と、JAR 経由でアプリケーションを実行するとき。 IDE のコンテキストでは、リソースはファイル システムから直接アクセスされますが、JAR 環境では、パスがアーカイブのプレフィックス (例: "jar:/root/app.jar!/") で不快に装飾されます。

この問題を解決し、一貫したリソース アクセス メカニズムを維持するには、次のアドバイスに従ってください:

getResourceAsStream を利用する

FileInputStream または同様のアプローチを使用してリソースをロードする誘惑を避ける。代わりに、getResourceAsStream() メソッドを利用してリソースを入力ストリームとして取得し、そこからデータを簡単に読み取ることができます。

直接ファイル システム アクセスを避ける

コードは、ファイル システムに格納された単一ファイルとしてリソースにアクセスすることに依存しているため、それらのリソースを JAR ファイル内にパッケージ化することは避けてください。別のファイルとして保持するなど、別の方法を検討してください。

一時ファイルの抽出を検討してください

最後の手段として、次の手順を含むハッキングな解決策を検討することもできます。 :

  1. リソースが JAR 内の別のファイルにあるかどうかを確認します。
  2. そうでない場合は、リソースを一時ファイルに抽出します。
  3. アプリケーション内で必要に応じてファイルを抽出します。

このアプローチは機能する可能性がありますが、その無計画な性質から、慎重に使用する必要があることがわかります。

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

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