2014-07-07 141 views
1

我有一個名爲lib的文件夾,其中包含我所有的Jar文件,並且在其中一個Jar文件類中,我有一個由批處理文件調用的主要方法。在與我的lib相同的文件夾位置,我有另一個文件夾結構路徑/ to/a/resource/myresource.txt加載Jar外部的文件

如何從Jar文件中的類加載此文件?我嘗試了以下,並且都導致null:

getClass().getResource("path/to/a/resource/myresource.txt") 
getClass().getClassLoader().getResource("path/to/a/resource/myresource.txt") 

任何想法?即使有絕對路徑,它也失敗了!有什麼建議麼?

+1

使用'FileReader'來做到這一點。 – Jens

+0

您是否更新了jar清單中的Class-Path條目? – JamesB

回答

0

您嘗試過的兩件事是用於從類路徑讀取文件,因爲此文件夾不在您的類路徑中,您可以使用任何java文件IO類直接讀取它。

0
File file = new File("C:/folder/myFile.txt"); 

,或者如果你知道的相對路徑:

File file = new File("../../path/myFile.txt"); 
0

您可以從文件系統加載的文件

new FileReader(relativeOrAbsoluteFilesystemLocation) 

,或者您可以在問題中添加目錄到類路徑:

java -cp "lib/*;lib" ... 

然後使用您的原始方法。

(UNIX使用:而非;的類路徑分隔符)