我試圖從可執行JAR文件加載圖像。在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());
隨着這是一個簡單的對象。 我也沒有得到NullPointerException,除非它被UI屏蔽。
我檢查了JAR文件和圖像是:
/pictures/Logo1.png
這個當前代碼工作無論是在Eclipse中,當它被導出到一個JAR並運行在終端中,但在雙擊JAR時不起作用,在這種情況下,該圖標是默認的JFrame圖標。
謝謝你的幫助。這可能只是我失去了一些明顯的東西。
即使雙擊'JAR'文件或者通過'命令提示符'運行它,它在我身邊也能正常工作。我在eclipse juno中創建了[這個項目](https://www.dropbox.com/s/32txnn42zxwebzi/SwingTest.zip),你也可以測試一下:-) –
如果你這樣做 - 「返回新的ImageIcon(getClass ().getResource(「/ pictures/Logo1.png」));'直接? –