実行可能な JAR ファイルからイメージをロードしようとしています。
ここからの情報をたどり、次にここからの情報をたどりました。
これは、画像を取得する関数です。
public static ImageIcon loadImage(String fileName, Object o) {
BufferedImage buff = null;
try {
buff = ImageIO.read(o.getClass().getResource(fileName));
// Also tried getResourceAsStream
} catch (IOException e) {
e.printStackTrace();
return null;
}
if (buff == null) {
System.out.println("Image Null");
return null;
}
return new ImageIcon(buff);
}
そして、これはそれがどのように呼ばれているかです:
logo = FileConverter.loadImage("/pictures/Logo1.png", this);
JFrame.setIconImage(logo.getImage());
これは単純なオブジェクトです。UIによってマスクされていない限り、 NullPointerExceptionも取得していません。
JARファイルを確認したところ、画像は次の場所にあります。
/pictures/Logo1.png
この現在のコードは、Eclipse でも、JAR にエクスポートされてターミナルで実行された場合でも機能しますが、JAR がダブルクリックされた場合には機能しません。この場合、アイコンはデフォルトの JFrame アイコンです。
助けてくれてありがとう。明らかな何かが欠けているのはおそらく私だけです。