2010-11-25 19 views
0

我知道這肯定已經被回答了一百萬次,但我似乎無法在任何地方找到它。所以這裏有雲:我在JUnit測試我有這個訪問該文件foo.txtjava代碼片段在包裝成jar之前和之後讀取文件

this.getClass().getResourceAsStream("/foo.txt") 

,直到我將其打包爲一個jar文件能正常工作。我應該如何編輯我的代碼,以便它在兩種情況下都能正常工作?

非常感謝

+2

foo.txt在您打包鱈魚時在哪裏e變成一個罐子? – 2010-11-25 11:37:00

+0

在`src`文件夾中 – seminolas 2010-11-25 11:43:16

+0

@seminolas再次將它放在Jar – 2010-11-25 11:47:13

回答

2

檢查您的foo.txt的被打包在JAR文件的根目錄。我認爲這個文件可能存在於文件系統中,所以當你從IDE運行代碼時,它可以工作,但由於某種原因,它不是jar文件。

可能的原因是,如果您使用ant腳本創建jar並將包含模式配置爲* .class。

0

確保文本文件打包在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/ 
相關問題