Нужна лучшая стратегия развертывания приложений Java - PullRequest
2 голосов
/ 02 апреля 2010

У меня есть различные приложения Java Swing, которые используются несколькими пользователями. Моя стратегия развертывания заключается в том, чтобы найти файл .jar в общей сетевой папке, и пользователи создают ярлыки для этого файла. Когда пользователь запускает приложение, файл копируется на его компьютер и выполняется локально. Этот метод допускает единственную копию кода и простое обновление.

Проблема в том, что я не могу обновить файл на сетевом ресурсе, если в это время какой-либо пользователь использует приложение.

Я не могу использовать Web Start, потому что у меня нет доступа к сертификату для подписи фляги.

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

Кто-нибудь может предложить лучший метод развертывания, где я могу легко обновить центральную копию приложения, где Windows XP не будет поддерживать блокировку файла?

Обновление: Метод JSmooth решает основные проблемы. .Exe, созданный JSmooth, заблокирован во время использования, но файлы .jar, содержащие функциональные возможности приложения, могут быть обновлены.

1 Ответ

7 голосов
/ 02 апреля 2010

Вы можете использовать Java Web Start, так как вы можете использовать самозаверяющий сертификат для подписи ваших файлов. Это даст вашим пользователям предупреждение, которое они могут принять раз и навсегда.

Поэтому я бы порекомендовал вам пойти по этому пути, поскольку это единственный стандартный Java-способ сделать то, что вы хотите, и он работает достаточно хорошо. С последним обновлением Java 6 вы получаете много новых полезных функций.

Совет: когда вы выпускаете новую версию, поместите jar-файлы в новое место, чтобы URL-адрес указывал на jar-файлы внутри JNLP-файла! Это связано с тем, что Java Web Start кэширует jar-файлы, и мы нашли лучший способ обеспечить точность кеша.


РЕДАКТИРОВАТЬ: Я считаю, что вы также можете использовать JSmooth, чтобы обернуть файлы Java в EXE-файл, который прозрачно извлекает различные файлы на локальном компьютере и выполняет их там. Это не должно блокировать оригинальный EXE-файл. Однако я бы порекомендовал вам использовать подход Web Start.

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