2011-12-13 37 views
1

我正在關注教程here。該文件位於項目的同一個根文件夾中。我已經試過在src文件夾和相同的包文件夾中。這三個地點都沒有工作。getResource() - >來源未找到

特定的代碼行是:

ImageIcon ii = new ImageIcon(this.getClass().getResource("bardejov.jpg")); 

任何想法,我做錯了嗎?

+0

[Java中的Eclipse可能的重複:我在哪裏把文件放在我想使用getResource加載的文件系統上? (例如ImageIcon的圖像)](http://stackoverflow.com/questions/270197/java-in-eclipse-where-do-i-put-files-on-the-filesystem-that-i-want-to -load-usin) – Barett

回答

3
// absolute from the classpath 
MyClass.class.getResource("/myfolder/abc.txt"); 
// relative to the class location 
MyClass.class.getResource("abc.txt"); 
// another relative to the class location 
MyClass.class.getResource("myfolder/abc.txt"); 
2

getResources(...)方法查找相對於默認類加載器看起來的文件,因此對於上面的代碼,bardejov.jpg需要與要找到的類文件一起使用。我自己,我通常創建一個類文件目錄的子目錄,稱爲「圖像」,並將圖像放在那裏,然後使用getClass().getResource("images/bardejov.jpg")

欲瞭解更多信息,請查看Class API

+0

哦...忘了試一下。奇怪考慮我有一個類似的問題與DLL文件和VC++中的調試。這種方法是最好的方法嗎? – Portaljacker

+0

@Portaljacker:如果將它們保存在jar文件中,則需要以這種方式獲取資源。 –

+0

有一天我會學習製作罐子。 :P – Portaljacker

1

如果你的圖像在同一個文件夾中,那麼它將工作,但如果你的圖像在根文件夾中,然後使用/ bardejov.jpg。