2011-08-29 51 views
0

我是Apache Ant新手,我創建了一個Java應用程序,其中包含許多文件中的一個sys.properties文件。這個文件的位置在根目錄下,並且爲了在代碼中調用字符串「sys.properties」來定位這個文件。它確實工作。在jar文件中查找文件的問題

現在我已經用Apache Ant創建了一個構建文件,它可以從應用程序中創建一個jar文件。在代碼中,我已經使用

<filelist dir="${basedir}" files="sys.properties"/> 

創建這個jar文件時,這的確將新文件中的jar文件的根目錄。

當我通過命令行運行:

java -classpath C:\tmp\APP;doddle.jar; doddle.home.start 

罐子應用似乎認準sys.properties,但它無法找到它(doddle.home.start類調​​用SYS。屬性)。

任何想法可能出現問題?提前致謝!

+2

你如何試圖找到該文件?如果你使用[ClassLoader.findResource(...)](http://download.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html#findResource(java.lang.String) )。 – home

回答

1

您應該提供有關如何引用文件的更多信息。你使用什麼路徑?如果你試圖打開「sys.properties」,你可以嘗試引用「/sys.properties」,它應該從jar文件的根目錄打開文件。

3

問題是sys.properties不再是一個文件,它是一個jar條目。

您可以訪問它作爲一個InputStreamSomeClass.class.getResourceAsStream("/sys.properties")(見如何處理流the I/O tutorial

+0

所以我應該把sys.properties從jar中引用,當我通過命令行調用它時引用? I.E. java -classpath C:\ tmp \ APP; doddle.jar; sys.properties doddle.home.start – Anto

+0

@tony不,你應該學會如何處理InputStream –