2010-04-20 127 views
12

嗨,大家好菜鳥Java的問題。如何使用可執行文件夾包含文本文件

我有一個Java項目,我想包含一個文本文件與可執行jar。現在文本文件在默認包中。

InputFlatFile currentFile = new InputFlatFile(「src/theFile.txt」);

我使用該行抓取文件,如使用src所看到的。但是這對於可執行jar無效。

有人可以讓我知道如何保持這個文件與可執行文件的jar,所以有人使用該程序可以只需單擊一個圖標並運行該程序。

謝謝!

+2

您可以使用getResourceAsStream(http://java.sun.com/javase/7/docs/api/java/lang/ClassLoader.html#getResourceAsStream%28java.lang.String%29)。有關其他問題,請參閱http://stackoverflow.com/questions/574809/java-load-a-resource-contained-in-a-jar。 – 2010-04-20 00:36:00

+0

謝謝,我會看看這個。 – Jake 2010-04-20 00:39:44

回答

5

jar文件中的基礎目錄位於類路徑中。

嘗試InputFlatFile currentFile = new InputFlatFile(「theFile.txt」);

您可能正在使用IDE,並且其中包含一個src文件夾,IDE用作包的基礎。當您從IDE創建jar文件時,它會刪除src文件夾,並且根文件夾中包含有軟件包。

即蝕的src/com.blah.blah一旦jar文件被創建的結構變得com.blah.blah

當然我假定InputFlatFile被正確讀取的值。

http://www.devdaily.com/blog/post/java/read-text-file-from-jar-file

+0

謝謝,那個鏈接幫我弄明白了! – Jake 2010-04-20 02:19:49

+0

希望它爲我工作。我在jar文件的'root'中有兩個文件,並且在securityProps.setProperty(「javax.net.ssl.trustStore」,「CDAtruststore.jks」)上出現錯誤;錯誤是'系統找不到指定的文件'但文件在jar裏面的頂層。已經讓我困惑了好幾個小時。 – 2012-11-27 14:03:11

5

你想它的可執行的JAR? 然後讀取您應該使用的文件

getClass().getResourceAsStream() 

讀取文件。

將文本文件保存在要訪問的包中。 類加載器會找到它。

還請記住JAR中的文件名區分大小寫。

相關問題