2013-07-08 128 views
1

在我的項目中,我使用系統托盤,當我編譯程序時,一切工作正常,並且我用於系統托盤的圖標顯示出來。製作runnable jar時不導出圖像

圖標放置在項目文件夾以及與圖標的代碼是

Image icon = Toolkit.getDefaultToolkit().getImage("Icon.png"); 

trayIcon = new TrayIcon(icon, "Program name", popup); 
trayIcon.setImageAutoSize(true); 

tray.add(trayIcon); 

正如我所說的,一切正常發現,但是當我出口項目作爲一個可運行的jar程序會運行,但圖標不會顯示,但它只是空白。

+0

請確保您將它包含在文件列表中,然後使用該類的資源加載器加載圖像。 – 2013-07-08 21:01:50

+0

我希望這個[回覆](http://stackoverflow.com/a/9866659/1057230)可能對這種情況有些用處 –

回答

5

要訪問罐子中的圖像,請使用Class.getResource()

我通常做這樣的事情:

InputStream stream = MyClass.class.getResourceAsStream("Icon.png"); 
if(stream == null) { 
    throw new RuntimeException("Icon.png not found."); 
} 

try { 
    return ImageIO.read(stream); 
} catch (IOException e) { 
    throw new RuntimeException(e); 
} finally { 
    try { 
     stream.close(); 
    } catch(IOException e) { } 
} 
6

如果你想從你的.jar文件使用getClass().getResource()加載資源。這將返回具有正確路徑的URL。

Image icon = ImageIO.read(getClass().getResource("image´s path")); 
相關問題