我有一個products.jar文件。裏面有一個類com.ClassA
。該項目的結構是這樣Java - 類路徑問題
products
|--test
|--com
|--ClassA.java
|--dependencies
|---inputs.txt
在Eclipse中,ClassA.java
通過以下路徑訪問inputs.txt
文件,它工作正常
private static final String PROPERTIES_FILE_PATH = "test/dependencies/inputs.txt";
test
包在Java構建路徑 - >來源
但是,當我將這個項目導出爲products.jar
時,我發現在jar文件中沒有test
目錄。在jar文件的根目錄下有兩個目錄com
和dependencies
。所以,當我試圖執行ClassA
通過命令行(居住在JAR文件),我收到以下異常:
JUnit version 4.8.2
java.io.FileNotFoundException: test/dependencies/inputs.txt (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:137)
at java.io.FileInputStream.<init>(FileInputStream.java:96)
所以發現test
DIR未在JAR文件導出後,我改變了我的ClassA.java文件的路徑爲dependencies/inputs.txt
。它在eclipse中不起作用,但我認爲它可以在jar中工作,因爲jar文件位於classpath中,並且dependencies
文件夾位於jar文件的根目錄下,所以java啓動程序將能夠找到dependencies
文件夾,然後找到inputs.txt
文件。
但不幸的是,它也沒有工作。