У меня есть простая структура: файл jar данных, содержащий пакет данных, и файл службы jar, который запускает службу с использованием данных. Чтобы упростить замену данных, я их разделяю, а classpath путь service.jar содержит каталог, в котором находится data.jar.
Внутри service.jar я использую getResource для загрузки файлов данных. Это работает, если файлы данных находятся непосредственно в папке, но не выполняется, когда они находятся внутри data.jar;
Это не удается:
all
+ globalclasspath
| + data.jar
| + mine.properties
+ daemons
+ service.jar
jsvc -cp globalclasspath:daemons/service.jar (...)
MyClass.class.getClassLoader( ).getResource( "mine.properties" ); // <-- null
Но это работает:
all
+ globalclasspath
| + mine.properties
+ daemons
+ service.jar
jsvc -cp globalclasspath:daemons/service.jar (...)
MyClass.class.getClassLoader( ).getResource( "mine.properties" ); // <-- not null
Я не хочу изменять путь к классам (если только я не могу изменить его на нечто общее, которое не зависит от имени файла данных jar), но я в порядке с изменением строки getResource (я try/data/mine.properties и /data.jar/mine.properties безрезультатно). Есть ли какое-то изменение, которое я могу сделать, чтобы ресурсы могли быть загружены из контейнера?