2012-05-13 1 views
0

Я пишу приложение на стороне сервера Java, и я хочу предоставить встроенную функциональность, чтобы ядро ​​могло обновить себя. Я хочу, чтобы приложение опросило сервер, и если есть новая версия, которую он может обновить, тогда он должен позволить пользователю активировать команду обновления.Приложение Java, которое обновляет себя?

Я хотел бы следующее произойдет во время этого обновления:

  • Скачать новый файл JAR с новой версией
  • Обновить содержимое этого файла JAR в основное приложение
  • выгружать любые старые классы от старого JAR

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

Я считаю, что Дженкинс это делает, но я не смог выяснить, как они могут это сделать.

+0

На самом деле Java Web Start - неправильное решение. –

ответ

0

Техника разгрузки/загрузки стандартная с приложениями Java EE, развернутыми в контейнер приложений, вы получаете это бесплатно.

Единственная проблема заключается в том, как управлять обновлением программно. Он должен быть специфичным для контейнера. Если вы не развертываете контейнер Java EE, вам придется вникать в детали gory пользовательских загрузчиков классов. Но это будет только начало, поскольку для этого есть больше возможностей, чем просто разгрузка классов. Возможно, ваше приложение запустило потоки, которые нужно будет изящно закрыть, например, или открытые сокеты и т. Д.

+0

Благодарим вас за ответ. В настоящее время приложение содержит встроенный Jetty, который запускается с помощью основного метода приложения. –

 Смежные вопросы

  • Нет связанных вопросов^_^