Я хотел бы поместить все файлы .properties, которые требуются моему исполняемому файлу jar, в подкаталог вне каталога, из которого я буду запускать файл jar.В настоящее время мой файл MANIFEST.MF выглядит примерно так:
Manifest-Version: 1.0
Build-Jdk: 1.6.0_26
Main-Class: MyMainClass
Class-Path: . conf lib/dependency1.jar
Если я храню свои файлы .properties в том же каталоге, что и файл jar, все работает нормально.Если я переместу их в подкаталог conf
, они не будут найдены.Я также пытался указать пути к файлам .properties напрямую, например conf/log4j.properties
.
Возможно ли то, что я пытаюсь сделать?
Обновление: Вот пример кода в моем исполняемом фляге, который терпит неудачу:
InputStream stream = getClass().getClassLoader().getResourceAsStream("myproperties.properties");
Когда myproperties.properties
находится в подкаталоге conf
, этот оператор возвращает нулевой InputStream.Когда log4j.properties
находится в подкаталоге conf
, он выводит предупреждающее сообщение о том, что его конфигурация не найдена:
log4j:WARN No appenders could be found for logger (MyMainClass).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.