2012-09-16 36 views
3

在Eclipse中,我有一個項目,我跟我這樣調用例如我的資源文件夾,應與運行的JAR?

URL url = FighterComponent.class.getResource("/gfx/characters/"); 
File file = new File(url.getPath() + info.name + "/" + frame.path); 

/GFX /是一個資源的文件夾裏面的資源工作。水庫是我必須這樣做我的鏈接資源文件夾:

運行>運行配置...>類路徑>選擇用戶條目>高級>添加文件夾

我現在的問題是,應該在哪裏res文件夾是在我將我的項目導出到可運行的jar中以供我的朋友測試之後?我嘗試將它放在與我的jar和我的jar文件相同的文件夾中,並且URL都爲null。

有什麼想法?

+0

作爲回答說,這些資源需要是罐內。其結果是,你展示的代碼,創建一個'File',將無法正常工作,因爲資源將是一個zip文件中的條目,而不是文件在自己的權利。您只需將它們作爲URL或流處理。 –

回答

2

訪問的資源。如果名稱以'/'('\u002f')開始,然後是資源的絕對名稱是繼'/'的名字的一部分。

所以,你應該有jar文件內GFX /字符的目錄。在該目錄下,如果你有一個image.jpg的資源,你將不得不使用檢索它:

URL url = TheClass.class.getResource("/gfx/characters/image.jpg"); 

您還可以使用getResourceAsStream()得到一個InputStream,你可以讀出。

+0

我也試過,沒有工作。 (內容來自RES入瓦罐) –

+0

不要試圖讀取文件。從調用getResourceAsStream得到的InputStream中讀取。不要把一個res目錄裏面的jar,但只是gfx/... –

0

你可以把它放在你的jar的根。那麼,人們將能夠通過/res/gfx/..