Я работаю над тем, чтобы приложение для Java было легко развертываться на других компьютерах, и я пишу сценарий муравья, чтобы это сделать, это нормально.Загрузка конфигурационного файла из пути к классам
У меня возникли проблемы с загрузкой ресурсов, перечисленных в пути к классам, указанному в файле манифеста 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 файл в каталоге конфигурации. Как я могу получить log4j? Другие ссылки говорят, что он просто должен быть в пути к классам, и он также явно указан в файле манифеста jar. Может ли кто-нибудь указать мне в правильном направлении?
Update:
Вот фактические данные из Class-Path:
Class-Path: <snip dependencies> config/configuration.xml config/log4j.properties
Ключи в каталоге, являющиеся папками, были ключом! Это также заставило log4j забрать файл конфигурации. Благодаря! Я бы упаковал его в банку, но мы хотели бы иметь возможность редактировать конфигурацию после того, как программа сидит на лабораторном компьютере. – Collin