2012-04-23 72 views
1

我有一個Eclipse Java項目,具有約10個外部jar依賴項。它在Eclipse中工作正常,我也使用ONE-JAR等工具導出它,它工作正常。從Eclipse中導出Java項目,圖像不顯示

我面臨的奇怪問題是圖像。我在項目中的包中包含了所有圖像,並且在導出時包含它們,但它們不顯示在正在運行的項目中?

我不知道爲什麼?奇怪的是,在一些JPanel的文字,我使用HTML使用例如嵌入式圖像:

URL url = myClass.class.getResource("icons/icon.png"); 

和這個作品,並顯示在輸出的圖像,但那些通過Java的直接引用,如:

this.setIconImage(Toolkit.getDefaultToolkit().getImage("src/icons/icon.png")); 

不工作。從Eclipse運行時,這一行代碼完美地工作。你能否建議可能是什麼問題,或者在出口這個項目時該怎麼做。我應該切換到Ant還是Maven?

+1

看起來第二個代碼是從文件系統加載的,而不是從類路徑加載的(注意它是如何以「src /」開頭的)。這將在Eclipse中工作,因爲項目根目錄下有一個「src」目錄(這是從Eclipse運行程序時的當前工作目錄)。 – Thilo 2012-04-23 10:31:36

+0

與@Thilo一致,解決方法是嘗試''/icons/icon.png「'那裏(絕對路徑在罐子裏)。 – 2012-04-23 10:35:30

+0

@Thilo,oh ok讓我試試這個,謝謝 – 911TurboS 2012-04-23 10:36:22

回答

3

你應該這樣做:

URL url = myClass.class.getResource("icons/icon.png"); 
this.setIconImage(Toolkit.getDefaultToolkit().getImage(url)); 

Toolkit提供接受URL以及方法,請參閱java.awt.Toolkit#getImage()

+0

感謝它的工作,我得到它的工作: Images.class.getResource(「icon.png」);其中Images是放置所有圖標的相同包中的虛擬類。 – 911TurboS 2012-04-23 10:58:28