我有一个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
文件。
但不幸的是,它也没有工作。