JAR からのリソースのロード
JAR アーカイブ内に埋め込まれたリソースにアクセスするとき、開発者は通常、IDE 中に取得したリソース パス間の不一致に遭遇します。実行時と、JAR 経由でアプリケーションを実行するとき。 IDE のコンテキストでは、リソースはファイル システムから直接アクセスされますが、JAR 環境では、パスはアーカイブのプレフィックス (例: "jar:/root/app.jar!/") で不快に装飾されます。
この問題を解決し、一貫したリソース アクセス メカニズムを維持するには、次のアドバイスに従ってください:
getResourceAsStream を使用する
FileInputStream または同様のアプローチを使用してリソースをロードする誘惑を避けてください。 。代わりに、 getResourceAsStream() メソッドを利用して、リソースを入力ストリームとして取得し、そこからデータを簡単に読み取ることができます。
直接ファイル システム アクセスを回避する
コードは、ファイル システムに格納された単一ファイルとしてリソースにアクセスすることに依存しているため、それらのリソースを JAR ファイル内にパッケージ化することは避けてください。別のファイルとして保持するなど、別の方法を検討してください。
一時ファイルの抽出を検討してください
最後の手段として、次の手順を含むハッキングな解決策を検討することもできます。 :
このアプローチは機能する可能性がありますが、その無計画な性質から、慎重に使用する必要があることがわかります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3