ホームページ >Java >&#&チュートリアル >Eclipse からエクスポートした JAR にイメージをロードできないのはなぜですか?

Eclipse からエクスポートした JAR にイメージをロードできないのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-29 06:59:09783ブラウズ

Why Can't I Load Images in My Exported JAR from Eclipse?

Eclipse からエクスポートされた JAR でロード可能な画像

Eclipse からエクスポートされた JAR ファイルをロードするときに画像のレンダリングに失敗する場合、イライラすることがあります。エクスポートされた JAR 内にイメージが存在するにもかかわらず、読み込み手法が正しくないために表示されない可能性があります。

リソース パス変数とコード バリエーション

重要な側面の 1 つは、リソースパスの正しい使用。参照されたイメージは、Eclipse の指定されたリソース フォルダー内にパッケージ化するか、プロジェクト構造内のソース コードと一緒に配置する必要があります。

イメージをロードするには、さまざまな方法を利用できます。

label.setIcon(new ImageIcon(MainFrame.class.getResource("/resources/header.jpg")));
URL url = getClass().getResource("/resources/header.jpg");
Image image = Toolkit.getDefaultToolkit().getImage(url);
label.setIcon(new ImageIcon(image));
try
{
    label.setIcon(new  ImageIcon(ImageIO.read(getClass().getResource("/resources/header.jpg"))));
}
catch (IOException e1)
{
    e1.printStackTrace();
}

リソースの読み込みの問題を解決する

目的画像のレンダリングに失敗した理由を洞察するには、実際の例との比較が役立つことがわかります。次のセクションでは、トラブルシューティングに役立つ図とステップバイステップのガイドを含むシナリオを示します。

例 1

src 内にリソースがある場合、次の手順に従います。

  • リソースをパッケージとして使用して、プロジェクト ファイル構造を変更します。 src.
  • コード内で、MainFrame クラスと一緒に次のリソース パスを使用します:

    URL url = MainFrame.class.getResource("/resources/stackoverflow.png");
  • 実行可能な JAR としてエクスポートし、実行します。

例2

src 内にはないがプロジェクトに含まれているリソースの場合:

  • リソース フォルダーがプロジェクトのビルド パス上にあることを確認します。
  • コード内の画像にアクセスしますが、リソースのプレフィックスを省略します。パス:

    URL url = Main.class.getResource("/stackoverflow.png");
  • 上記のように JAR をエクスポートします。

起動構成

イメージをロードできるようになったら、 Eclipse 内から起動構成を設定することは、JAR をエクスポートするために重要です。この簡単なプロセスに従って構成を作成します。

  • プロジェクトを右クリックし、[実行] -> [実行構成] を選択します。
  • プロジェクトの新しい起動構成を作成します。
  • 実行可能ファイルとしてエクスポートするときにこの構成が選択されていることを確認してくださいJAR.

検証

  • エクスポートされた JAR のマニフェストを調べると、次の行が存在する必要があります:

    Rsrc-Main-Class: com.stackoverflow.test.Main
  • 展開された JAR には次のファイルが含まれている必要があります構造:

    stackoverflow.png (resource file)
  • この JAR を実行すると、画像が正常にレンダリングされるはずです。

以上がEclipse からエクスポートした JAR にイメージをロードできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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