2015-01-05 195 views
0

如果我加載一些(比如* .txt)文件到我的Java應用程序,我怎麼能它inlcude到我的可執行的JAR,使其便攜(也就是說,如果我將我的罐子到另一臺機器,它不需要移動這個* .txt文件)?包括外部文件(而不是JAR)到可執行的JAR

請注意,我不需要文件的內容我需要文件本身。我應該如何從代碼中編寫這個文件的路徑?

String path = "path/to/file/"; //Yeah it should be String 

我使用的是IntellijIDEA,我可以包含任何文件到我的最終jar但不知道它放在哪裏。謝謝。

+1

可能重複(http://stackoverflow.com/questions/18717038 /添加資源在intellij爲java項目) – Joe

+0

@Joe謝謝,看起來有用,但這麼多字母:D,我會檢查出來 – Daria

+0

@Joe但是,當你看到這個問題hasn 't接受答案,作者標記爲不解決他的問題 – Daria

回答

0

你需要下面

<target name="somejar" depends="compile"> 
     <jar jarfile="${somejar.jar}"> 
     <fileset dir="${bin.dir}"> 
      <include name="**/*.class"/> 
     </fileset> 
     <zipgroupfileset dir="lib" includes="*.jar"/> 
     <fileset dir="${basedir}"> 
      <include name="config/*.properties"/> 
      <include name="config/*.txt"/> 
     </fileset> 
     </jar> 
    </target> 

這有點像將會把所有需要的類和屬性文件一起。您可以從項目的底部編碼文件的位置,直到您到達文件。

2

只要把你的文件到項目的SRC文件夾 - 例如的src /資源/ file.txt的。當你建立你的項目時,整個src內容將被放入結果jar中。你可以用下面的代碼訪問您的文件:

this.getClass().getResource("/resource/file.txt");  

讀取所有行的一個例子:在的IntelliJ爲Java項目增加資源]

URL url = this.getClass().getResource("/resource/file.txt"); 
Path path = Paths.get(url.toURI()); 
List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);  
+0

感謝您的輸入。但是我的函數等待'string'格式的文件路徑作爲參數。使用'toString()'我得到像'file:/ full/path/to/file /'這樣的字符串,所以它對我不可用。 – Daria