У меня есть файл products.jar.Внутри этого есть один класс com.ClassA
.Структура проекта выглядит следующим образом:
products
|--test
|--com
|--ClassA.java
|--dependencies
|---inputs.txt
Внутри затмения ClassA.java
обращается к файлу inputs.txt
по следующему пути и работает нормально
private static final String PROPERTIES_FILE_PATH = "test/dependencies/inputs.txt";
test
пакет находится в пути сборки java -> sources
Но когда я экспортирую этот проект как 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 file, я изменил путь к файлу в моем ClassA.java на dependencies/inputs.txt
.Он не работал в Eclipse, но я подумал, что он будет работать в JAR, потому что файл JAR находится в classpath, а папка dependencies
находится в корне файла JAR, поэтому программа запуска Java сможет найти папку dependencies
изатем inputs.txt
файл.
Но, к сожалению, он также не работает.