Установщик JAR, который автоматически определяет наличие Java и автоматически запускает приложение - PullRequest
5 голосов
/ 15 июня 2009

Мне нужно создать установщик, который делает следующее:

  1. Устанавливает мой jar на клиент.
  2. Автоматически определяет, установлен ли JRE (в этом случае он не переустанавливает его), в противном случае он устанавливается без нажатия пользователем другой кнопки.
  3. Автоматический запуск приложения при загрузке клиента.
  4. Работает в Windows, Mac и Linux.

Есть идеи, как это сделать?

Ответы [ 6 ]

6 голосов
/ 15 июня 2009

Если коммерческий инструмент в порядке, я могу рекомендовать install4j . 1, 2 и 4 легко сделать с ним, но насчет 3 я не уверен. Редактировать : Вероятно, этого можно добиться, установив приложение в качестве «службы», которую install4j поддерживает для всех платформ. Цитирование со страницы Особенности :

install4j предлагает полную поддержку генерация и установка сервисов (демоны). Для услуг install4j генерирует исполняемые файлы службы на Windows, элементы автозагрузки в Mac OS X и запуск / остановка скриптов в Unix / Linux платформы.

Редактировать : Что касается # 2, обнаружение JRE: install4 имеет довольно приятные, гибкие опции для связывания / обнаружения JRE. Вы можете включить JRE (статически или динамически, совместно или нет) или предпочесть использовать уже существующий JRE с возможностью загрузки JRE из вашего установщика в качестве запасного варианта. Проверьте эти документы для получения дополнительной информации: Как установщики находят пакеты JRE и JRE .

( Подробнее о моем опыте установки install4j .)

Для других инструментов вы можете проверить некоторые из ранних Java-инсталляторов вопросов по SO:

1 голос
/ 01 ноября 2009

Я рекомендую скачать исходный код для сценариев сборки популярных Java-программ, таких как limewire, и следовать их примеру. Конец.

... Или вы можете сделать, как я:

  • Я сделал обнаружение JRE и скачать / установить распространяемый при необходимости с NSIS на Windows. Может быть .msi лучше, чем installer.exe, который создает NSIS. Я считаю, что MSI больше похожи на пакеты для Mac, поэтому они позволяют корректные обновления Может быть, NSIS создает MSI ... не уверен.
  • Mac - это просто приложение на Java пакет, и вы указываете JRE и другую информацию Java в info.plist и при желании вы можете создать .pkg файл, чтобы дать пользователю установщик и собрать в dmg с помощью программ командной строки dmg.
  • Я не делал Linux и не планирую ... извините:)

Все это было изрядной работой. Сначала я занимался Windows, а пару лет спустя - Mac.

Вы можете интегрировать все это в скрипты сборки NSIS и Ant. Я не могу вспомнить, почему я не использовал install4j. Вероятно, я был слишком дешев :)

1 голос
/ 18 июля 2009

Вы также можете взглянуть на BitRock InstallBuilder , он предоставляет встроенные функции для выполнения того, что вы хотите. Мы будем рады создать образец установщика для вас, просто напишите нам.

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

Вы можете использовать launch4j , однако, он не устанавливает автоматически Java. Но, возможно, есть способ заставить это работать, например, упаковав JRE.

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

Коммерческие инструменты, такие как InstallAnywhere, могут это сделать. После установки JAR (и ссылок и тому подобного) установщики могут проверить реестр, если Java уже установлена, и продолжить работу или нет. Пока установщик поддерживает все необходимые платформы, у вас все в порядке.

0 голосов
/ 15 июня 2009

Не слышал ничего о том, что работает на всех этих платформах, но JSmooth может помочь (соответствует вашим потребностям в Windows). Я использовал его около 2 лет назад, и он работал нормально.

...