2011-05-06 203 views
0

我在Java項目的「src」文件夾中添加了「Images」文件夾。當jar通過命令行運行但在運行時通過Netbean運行時,相對路徑不起作用

用於在標題欄上設置左上方的圖像我正在使用來自圖像文件夾的圖像。 要做到這一點我已經寫代碼 Image img=Toolkit.getDefaultToolkit().getImage("src/Images/Sell Smart2 copy.jpg"); frame.setIconImage(img);

能正常工作時,通過Netbeans的 運行項目但是,當我使用命令,通過命令行運行該項目的罐子「Java的罐子project.jar」則不會顯示圖片。

爲什麼會出現這個問題?任何解決方案

謝謝, 爲引薦添加圖像。

enter image description here

+0

我會使用絕對路徑,即「/ src目錄/圖片/賣出SMART2 copy.jpg」 – MeBigFatGuy 2011-05-06 17:48:44

+0

@MeBigFatGuy ::那是什麼我用 – 2011-05-06 18:13:31

回答

1

只需從您的路徑中刪除src。 此外,在裝載震動的圖像,你應該使用的getClass()。getResource()方法

+0

Hi @maneesh,我刪除了src文件夾名稱,並嘗試用「」/ Images/Sell Smart2 copy.jpg「但它沒有工作,現在嘗試按照你的建議使用getClass()。getResource()。結果 – 2011-05-06 18:41:02

1
  1. 你檢查src文件夾包含在罐子當你創建一個罐子? 使用jar -xf或類似選項查看jar內容或使用winrar查看jar內容。
+0

:嗨,我已經用winrar打開罐子,並沒有發現 「SRC 「它下面的文件夾。它包含直接在jar中的Images文件夾。你可以在添加jar或任何其他選項的src。 – 2011-05-06 18:15:45

1

罐中,你可以使用

getClass().getClassLoader.getResourceAsStream();

當你得到的流,你可以做任何你想要的。

但請記住,當你運行你使用resourseStream你在netbeans項目可能會不會工作,但是當你做jar它會工作。

+0

如果我的回答是正確的,請通知我plz。 – Ankit 2011-05-06 18:26:47

+0

您的建議在語法上是不正確的。沒有'getClassLoader()','getClass()。getResourceAsStream()'同樣適用於IDE和out。只是重複@maneesh的早期(+1)建議。這個答案可能應該被刪除。 – trashgod 2011-05-06 18:58:11

+0

HI @Ankit ::我還沒有嘗試過你給出的,但是我嘗試了@maneesh給出的解決方案,它在IDE和命令都行。謝謝你的回覆:) – 2011-05-06 19:38:50

相關問題