измените файл свойств в META-INF

Я использую знатока и храню файл свойств в 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, но не при упаковке как банка также - действительно ли возможно достигнуть того же самого?

1
задан Pascal Thivent 7 July 2010 в 18:03
поделиться

2 ответа

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

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

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

2
ответ дан 2 September 2019 в 23:13
поделиться

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

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

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

0
ответ дан 2 September 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: