2013-07-01 43 views
0

我試圖加載一個圖像文件。Mac上的Eclipse src文件夾中的圖像文件的路徑

File imageCheck = new File("Users/me/Documents/workspace/ChineseChess/src/RCar.gif"); 
if (imageCheck.exists()) 
    System.out.println("Image file found!"); 
else 
    System.out.println("Image file not found! :("); 
button.setIcon(new ImageIcon("Users/me/Documents/workspace/ChineseChess/src/RCar.gif")); 
  1. 我應該把RCar.gif在Eclipse項目的src或bin文件夾?
  2. 如何在沒有明確路徑的情況下引用它? (我使用的是Mac,我相信這應該是這樣的〜/ RCar.gif但我有麻煩在線找到正確的語法。

謝謝!

回答

2

如果你想使用相對路徑,他們將與項目的根目錄相關,或者與其部署時相關的jar文件所在的目錄。您可以使用src/RCar.gif作爲文件名。

如果你爲資源創建了一個單獨的文件夾,然後用new File("res/RCar.gif");來解決它們會更好。另一種方法是將它們放在src文件夾中,並使用類加載器對它們進行尋址。

+0

修正了答案,現在它實際上使用相對路徑:) –

3

如果我沒有記錯,Eclipse的所有要求資源被放置在資源目錄中,這些將與當你導出你的應用程序被自動綁定。

在運行時,您只需使用Class#getResource("/path/to/your/resource")所在的路徑是從「資源」文件夾的位置

+1

'如果我沒有記錯,Eclipse需要將所有資源放置在資源目錄中.'不會自動。該文件夾必須位於Eclipse構建路徑中。如果您不使用像Apache Maven這樣的構建管理器,您可以右鍵單擊一個文件夾並選擇「構建路徑/用作源文件夾」 – Sandro

+0

@Sandro從未使用Eclipse,但我記得很多人在放置資源時遇到問題在'src'文件夾內。這是我的理解,Eclipse有一個自動設置的某種「資源」文件夾 – MadProgrammer

+0

好吧,Maven文件夾結構的默認佈局包含「資源」文件夾。有時項目不會自動生成。在這種情況下,資源不會複製到構成運行時資源的Eclipse輸出文件夾中,因此在運行時不可用。 – Sandro

3

當它在運行時所屬的類的資源文件夾中時,您可以非常輕鬆地加載該圖標。 見http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getResource%28java.lang.String%29

在類your.packagename.YourClassName,你可以寫:

String folderName = YourClassName.class.getName().replace('.', '/'); 
String urlString = "/"+folderName+"/RCar.gif"; 
URL fileUri = YourClassName.class.getResource(urlString); 
button.setIcon(new ImageIcon(fileUri)); 

的urlString將/your/packagename/YourClassName/RCar.gif。當然,這也是圖標應該在運行時的地方。

HTH

1

是......它採用相對路徑。

public static final String FILE_PATH =「src/test/resources/car.png」;