2013-02-24 122 views
0

嘿,是否有可能從文件中獲取圖像而不使用java中的完整文件位置?我下面的代碼將只與完整的文件路徑工作:Java - 從文件路徑獲取映像

Icon icon = new ImageIcon("/Users/MyMac/Documents/Project/Software/Project/src/UI/Images/default_pic.png"); 

是否有可能使用這樣的文件路徑?:

Icon icon = new ImageIcon("/src/UI/Images/default_pic.png"); 
+2

嘗試刪除第一個'/'。 – Dukeling 2013-02-24 15:09:14

+0

您將不得不適當地設置'CLASSPATH'。 – 2013-02-24 15:10:43

+1

感謝您提供有用的評論,而不是像其他人一樣否定評論 – user1851487 2013-02-24 15:11:05

回答

2

「/src/UI/Images/default_pic.png」是絕對路徑,因此它會在根目錄中尋找src目錄,然後在其中找到UI子目錄等。不是你想要的。

您可以使用諸如「src/UI/Images/default_pic.png」之類的相對路徑(注意它不是以「/」開頭),但如其名稱所示,它相對於當前目錄。因此,如果您的當前目錄是/ Users/MyMac/Documents/Project/Software/Project(或包含相同子路徑中的文件的任何目錄),則它將工作,否則它不會。

最後,另一種方法是通過類路徑訪問文件。考慮到項目可能打包在jar文件中,鏡像文件可能不是磁盤上的單獨文件,但仍然可以通過URL或InputStream訪問它。在Class和ClassLoader中搜索getResource和getResourceAsStream。