2011-11-01 43 views
3

當我將我的項目轉換爲可運行的jar在同一個系統中時,圖像在輸出中加載。但是當我在另一個系統嘗試時,圖像加載失敗?如何給圖片的網址,而不是使用c:?請幫助這個?如何在java runnable jar中加載圖像?

JToolBar toolbar = new JToolBar("Toolbar", JToolBar.HORIZONTAL); 

JButton capturebut = new JButton(new ImageIcon("C:\\sampleprojects\\ 
     compare\\shankar\\src\\capture.gif")); 

capturebut.setToolTipText("Capture"); 

toolbar.add(capturebut); 
+0

爲圖像使用相對路徑。相對於你的類文件。並添加這些圖像n jar文件。 – Kris

回答

8

你需要把圖像文件到JAR文件,然後使用java.lang.ClassgetResource()方法來獲取引用文件的URL它位於JAR文件中;現在你的代碼直接從你的文件系統加載圖像文件,而不是從JAR文件中加載。

您傳遞給getResource()的字符串取決於您將它放在JAR文件中的位置。如果該類這樣做是Foo類包com.acme.bar,你可以把capture.gif在同一com\acme\bar\子目錄中的JAR文件(在相同的目錄Foo類),並做

JButton capturebut = new JButton(new ImageIcon(Foo.class.getResource("capture.gif"))); 

這是因爲調用getResource()在具有相對名稱的類上(不以/開頭)將在該類的類文件所在的同一目錄下查找資源。

另一方面,您可以在JAR文件的根目錄下創建一個resources\images子目錄,而不是"capture.gif"使用"/resources/images/capture.gif"。用'/'開始名稱使得它從JAR文件的根目錄開始搜索,而不是相對於類文件的位置。

+0

感謝matthhew您的迴應。 – jcrshankar

+0

最後,一個很好的解釋,而不僅僅是鏈接和代碼示例:) – HXCaine