我知道這肯定已經被回答了一百萬次,但我似乎無法在任何地方找到它。所以這裏有雲:我在JUnit測試我有這個訪問該文件foo.txt
:java代碼片段在包裝成jar之前和之後讀取文件
this.getClass().getResourceAsStream("/foo.txt")
,直到我將其打包爲一個jar文件能正常工作。我應該如何編輯我的代碼,以便它在兩種情況下都能正常工作?
非常感謝
我知道這肯定已經被回答了一百萬次,但我似乎無法在任何地方找到它。所以這裏有雲:我在JUnit測試我有這個訪問該文件foo.txt
:java代碼片段在包裝成jar之前和之後讀取文件
this.getClass().getResourceAsStream("/foo.txt")
,直到我將其打包爲一個jar文件能正常工作。我應該如何編輯我的代碼,以便它在兩種情況下都能正常工作?
非常感謝
檢查您的foo.txt的被打包在JAR文件的根目錄。我認爲這個文件可能存在於文件系統中,所以當你從IDE運行代碼時,它可以工作,但由於某種原因,它不是jar文件。
可能的原因是,如果您使用ant腳本創建jar並將包含模式配置爲* .class。
確保文本文件打包在JAR:如果類文件,並foo.txt
包含在這樣的src文件
test.jar =>
-> META-INF/MANIFEST.MF
-> com/somepackage/ClassThatLoadsFooTxt.class
-> foo.txt
:
-> src/com/somepackage/ClassThatLoadsFooTxt.class
-> src/foo.txt
確保在Class-Path
進入您的MANIFEST.MF指向src:
Class-Path: src/
foo.txt在您打包鱈魚時在哪裏e變成一個罐子? – 2010-11-25 11:37:00
在`src`文件夾中 – seminolas 2010-11-25 11:43:16
@seminolas再次將它放在Jar – 2010-11-25 11:47:13