изменить файл свойств в META-INF - PullRequest
1 голос
/ 07 июля 2010

Я использую maven и сохраняю файл свойств в src/main/resources, который я могу читать хорошо, например:

properties.loadFromXML(this.getClass().getClassLoader().
                        getResourceAsStream("META-INF/properties.xml");

Можно ли записать этот файл, когда он упакован в банку?Я пробовал следующее:

properties.storeToXML(new FileOutputStream(new File(this.getClass().getClassLoader().
                        getResource("META-INF/properties.xml").toURI())), "");

Это работает в Eclipse, потому что он сохраняет файл в target/classes/META-INF, но не в том случае, когда он упакован в банку, так возможно ли достичь того же?1009 *

Ответы [ 2 ]

2 голосов
/ 07 июля 2010

Можно ли записать этот файл, когда он упакован в jar-файл?

Краткий ответ: нет, это невозможно, файл jar - это файл,не каталог.И вообще, вы обычно не записываете файлы свойств обратно в файл jar.

Вы должны поместить этот файл свойств в путь к классам в локальной файловой системе вне JAR.

0 голосов
/ 07 июля 2010

Всегда можно модифицировать упакованный файл, распаковывая, переписывая и переупаковывая.Иногда это самый простой подход.

Файл Jar по сути является переименованным .ZIP файлом.В Java есть классы для доступа к файлам внутри .Zip-файла, и вы можете (если достаточно мотивированы) написать для этого себе программу.

В качестве альтернативы, я почти уверен, что есть задачи ant, которые могут сделать это тоже (подумайте о творческом использовании задачи jar), и есть плагины POM для запуска задач ant из Maven.

...