Запись в файл свойств Java, содержащийся в качестве ресурса в файле JAR - PullRequest
4 голосов
/ 08 июня 2009

Есть ли способ изменить значения свойств в файле свойств, который хранится в файле Jar как ресурс?

Это сценарий, с которым я пытаюсь справиться. У меня есть файл свойств, хранящийся как ресурс в моем файле Jar. Есть некоторые специфические для системы свойства, например, пути. Я хочу иметь возможность изменить это для системы, на которой я хочу, чтобы файл Jar работал.

Лучшим решением было бы вызвать класс / метод, который является внутренним по отношению к файлу Jar, который изменит файл ресурсов, содержащийся в Jar. Другим решением было бы запустить служебную программу для файла Jar, которая изменит файл свойств и повторно выполнит Jar все. Это будет однократный процесс установки, который я запускаю для файла Jar.

Ответы [ 2 ]

3 голосов
/ 08 июня 2009

Используйте API настроек для хранения изменений: http://java.sun.com/j2se/1.5.0/docs/api/java/util/prefs/package-frame.html

Отредактируйте после повторного прочтения вопроса: находитесь ли вы в ситуации, когда хотите отправить JAR потенциально большому количеству людей и настроить его при установке? Если да, то префы - это путь.

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

1 голос
/ 09 июня 2009

Я думаю, вы можете найти проект конфигурации Apache Commons использования.

Вы можете установить это, чтобы использовать файлы свойств и иметь концепцию системы и файла свойств пользователя . Затем вы можете выполнить развертывание в файле системных свойств, и это переопределяется файлом свойств пользователя. Запись свойства изменит файл свойств пользователя.

Таким образом, вы развертываете файл системных свойств с настройками по умолчанию, а изменения сохраняются в переопределенном файле пользовательских свойств. Я использовал это в прошлом именно для того, что вы делаете, и это работает очень хорошо. Существует огромное количество способов настройки этой библиотеки, поэтому стоит посмотреть примеры и FAQ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...