Я работаю над тем, чтобы облегчить развертывание моего Java-приложения на других компьютерах и пишу для этого сценарий ant.
У меня проблемы с загрузкой ресурсов, перечисленных в classpath, указанном в файле манифеста jar.
Структура папок выглядит следующим образом:
/MyProgram.jar
/lib/<dependencies>
/config/configuration.xml
Я не могу на всю жизнь получить доступ к файлу configuration.xml с помощью ClassLoader. Он вместе со всеми зависимостями явно указан в записи пути к классу файла манифеста.
Я пробовал много вариантов следующего:
this.xml = Thread.currentThread().getContextClassLoader()
.getResourceAsStream(xmlName);
this.xml = this.getClass().getResourceAsStream(xmlName);
С xmlName в качестве строки всех следующих значений:
"config/configuration.xml"
"configuration.xml"
"config.configuration.xml"
В связи с этим у меня также есть файл log4j.properties в каталоге config. Как я могу получить log4j, чтобы забрать его? Другие ссылки говорят, что он просто должен быть в пути к классам, и он тоже явно указан в файле манифеста jar. Может ли кто-нибудь указать мне правильное направление?
Обновление:
Вот фактические записи из Class-Path:
Class-Path: <snip dependencies> config/configuration.xml config/log4j.properties