2012-10-14 40 views
1

這裏是我的目錄結構
XYZProject利用資源獨立的文件位置的

  • 構建
  • DIST
  • nbproject的
  • SRC

我的NetBeans工作。
現在我有一個名爲ABC.txt的文件
我想將它打包到jar文件中。
現在我做了以下工作:在源包下創建一個名爲Resources的新文件夾,並將文件ABC.txt放入該文件夾中。

XYZProject

-- src 
    | 
    -- Resources 
    | 
    -- ABC.txt 

現在我要訪問此文件獨立的文件位置。於是我跟着一些教程,做這個,

URL url = XYZProject.class.getClassLoader().getResource("Resources/ABC.txt"); 
String urlStr = urlStr.getFile().replaceAll("%20", " "); 
System.out.println(urlStr); 
BufferedReader reader; 
try { 
    reader = new BufferedReader(new FileReader(urlStr)); ..... 
} catch (FileNotFoundException e) {...} 

現在,當我經過的NetBeans即F6和多田WORKS運行代碼這個作品!
但是當試圖運行該jar時,它無法找到該文件。它拋出FileNotFoundException
如何訪問通過netbeans和java -jar運行它的jar文本文件?
另外我不知道爲什麼有一個%20,而不是我得到的URL空間。

輸出運行VIA NB

/D:/.../.../.../.../XYZProject/build/classes/Resources/ABC.txt 

輸出運行通過java -jar

file:/D:/.../.../.../.../XYZProject/dist/XYZProject.jar!/Resources/ABC.txt 

回答

1

在一個罐子裏的資源是不是File。必須通過URLInputStream訪問。我可能會使用URL - >InputStream - >InputStreamReader - >BufferedReader(來自內存,未經測試)。

+0

因此,在這種情況下,我將如何訪問jar內的txt文件? –

+0

請參閱編輯... –

+0

reader = new BufferedReader(new InputStreamReader(url.openStream()));這解決了。謝謝 –

相關問題