Как мне указать каталог для файлов свойств в пути к классу манифеста jar? - PullRequest
0 голосов
/ 16 ноября 2011

Я хотел бы поместить все файлы .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.

1 Ответ

0 голосов
/ 19 декабря 2011

Попробуйте использовать org.apache.log4j.PropertyConfigurator.configure(String configFilename)

Это можно использовать, чтобы указать, где находится ваш файл журнала.

Вот пример этого здесь: http://logging.apache.org/log4j/1.2/manual.html

...