Открыть и редактировать файл в .jar с Java? - PullRequest
5 голосов
/ 08 января 2011

Как бы вы открыли файл .xml, который находится внутри .jar, и отредактировали его?

Я знаю, что вы можете сделать ...

InputStream myStream = this.getClass().getResourceAsStream("xmlData.xml");

Но как бывы открываете xmlData.xml, редактируете файл и сохраняете его в .jar?Мне было бы полезно это знать, и я не хочу редактировать файл вне .jar ... , и приложение должно постоянно работать!

Спасибо!

Ответы [ 2 ]

3 голосов
/ 08 января 2011

Jar-файлы - это просто .zip-файлы с другим суффиксом и соглашением об именовании содержимого. Поэтому используйте классы из java.util.zip для чтения и / или записи содержимого.

Не гарантируется (или даже вероятно) изменение содержимого для воздействия на работающую систему, поскольку загрузчик классов может кэшировать содержимое по своему усмотрению.

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

1 голос
/ 08 января 2011

Если вы приложение. имеет графический интерфейс и у вас есть доступ к веб-сайту / серверу, JWS может быть ответом. API JNLP, доступный для приложений JWS. предоставляет такие службы, как PersistenceService. Вот небольшая демоверсия . службы постоянства .

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

Демо. пишет в магазин при выключении и читает при запуске. Но нет никаких причин, по которым он не может быть вызван пунктом меню, таймером и т. Д.

...