Как автоматически обновить приложение Java во время его запуска? - PullRequest
11 голосов
/ 31 января 2012

У меня есть приложение Java 1.6, развернутое на нескольких машинах (~ 30) и запущенное как служба Windows.

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

В идеале, когда служба Windows запускается, она проверяет на удаленном сервере, существует ли обновление и, если оно найдено, обновляет приложение. Обратите внимание, что допустимо, чтобы после этого обновления служба была перезапущена снова.

Этот механизм можно сравнить с проверкой моментального снимка Maven: если в удаленном репозитории имеется более новая версия SNAPSHOT, то Maven скачает ее перед запуском. Обратите внимание, что само приложение будет развернуто в репозитории Maven (в нашем случае Nexus), поэтому проверка на наличие обновлений будет выполняться для этого экземпляра Nexus.

Каковы мои технические решения для автоматического обновления приложения?

Не стесняйтесь спрашивать меня более подробно о технической информации или о контексте ...

Спасибо.

<Ч />

Редактировать : Как заявил Питер Лори, я могу использовать Java Web Start. Однако как я могу интегрировать JWS в приложение Java, которое запускается как служба Windows?

Ответы [ 2 ]

4 голосов
/ 31 января 2012

Я бы посмотрел на Java Web Start

1 голос
/ 01 февраля 2012

Обычная техника для этого - использовать пусковую установку.Шаги выглядят примерно так:

  1. Запустите модуль запуска.
  2. Модуль запуска проверяет, следует ли обновить приложение.Если да, программа запуска обновляет приложение (я думаю, что это «шаг обновления»).
  3. После шага обновления программа запуска запускает приложение.
...