2011-09-18 57 views
1

我在Java中創建了一個應用程序(使用Eclipse IDE),並且我在代碼中指向存儲在名爲「source」的源文件夾中的圖像,並且它在IDE中正常工作。當我將jar提取到可運行的jar時,沒有錯誤,但圖片不顯示,或者它顯示了它後面的任何內容。我在WinRar中打開了這個.jar文件,看起來這些圖片都是用類文件引入的。我怎樣才能解決這個問題?Java .Jar Image沒有顯示出來

Image i = Toolkit.getDefaultToolkit().getImage("sources/SystemTrayOne.png"); 
+1

你能告訴我們相關的代碼嗎?你不是指圖像作爲Jar中的文件嗎?還是他們被作爲資源訪問?你是否看到任何異常?你有沒有空的catch塊? –

回答

4

您正試圖獲取不存在於Jar中的文件。相反,通過Class#getResource(...)

例如獲取URL,

URL imgUrl = getClass().getResource(....); // resource name here 
Image i = Toolkit.getDefaultToolkit().getImage(imgUrl); 

或更好

URL imgUrl = getClass().getResource(....); // resource name here 
Image i = ImageIO.read(imgUrl); 
+0

我應該在哪裏放置圖像? –

+0

將圖像留在它所在的位置,因爲這不是問題。問題在於你如何檢索它。 'getResources(...)'所需的字符串將是圖像文件名,其路徑與您的類文件位置相關。 –

+0

它的工作,但Eclipse忽略把我的「源」文件夾中的所有內容放到一個單獨的文件夾中,我必須自己做這件事 –

2

我也面臨着同樣的問題,直到昨天。我已經爲此解決了問題。讓我與你分享。

  • 在您的Eclipse中,轉到您的項目名稱。
  • 正確的項目名稱。
  • 新建 - >源文件/文件夾
  • 名稱這個源文件/文件夾的圖片
  • 現在你的本地計算機上訪問Eclipse工作區在您的項目 是實際存在的。
  • 僅將所有圖像複製到新創建的「圖像」文件夾中。
  • 現在回到Eclipse。
  • 您的項目右鍵 - >刷新
  • 現在,無論你在你的.java文件使用圖像,去那些線和前綴與圖像的圖像位置/

舉例:XXX XXX = XXXX(example.jpg)用......改變它XXX XXX = XXXX(images/example.jpg)

BOOM !!運行.jar文件時將顯示圖像。

注意:不要使用java -jar AppName.jar從cmd運行.jar文件相反,只需雙擊.jar文件即可看到圖像。

如果它適合你,請立即註冊。 :)