JAR からのリソースのロード
JAR アーカイブ内に埋め込まれたリソースにアクセスするとき、開発者は通常、IDE 中に取得したリソース パス間の不一致に遭遇します。実行時と、JAR 経由でアプリケーションを実行するとき。 IDE のコンテキストでは、リソースはファイル システムから直接アクセスされますが、JAR 環境では、パスがアーカイブのプレフィックス (例: "jar:/root/app.jar!/") で不快に装飾されます。
この問題を解決し、一貫したリソース アクセス メカニズムを維持するには、次のアドバイスに従ってください:
getResourceAsStream を利用する
FileInputStream または同様のアプローチを使用してリソースをロードする誘惑を避ける。代わりに、getResourceAsStream() メソッドを利用してリソースを入力ストリームとして取得し、そこからデータを簡単に読み取ることができます。
直接ファイル システム アクセスを避ける
コードは、ファイル システムに格納された単一ファイルとしてリソースにアクセスすることに依存しているため、それらのリソースを JAR ファイル内にパッケージ化することは避けてください。別のファイルとして保持するなど、別の方法を検討してください。
一時ファイルの抽出を検討してください
最後の手段として、次の手順を含むハッキングな解決策を検討することもできます。 :
このアプローチは機能する可能性がありますが、その無計画な性質から、慎重に使用する必要があることがわかります。
以上がJAR 内の埋め込みリソースに一貫してアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。