JAR, который автоматически обнаруживает, существует ли Java, и автозапуск приложения

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

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

Любая идея, как это сделать?

Ответ 1

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

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

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

(Подробнее о моем опыте с install4j.)

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

Ответ 2

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

Ответ 3

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

Ответ 4

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

Ответ 5

Я рекомендую загрузить исходный код скриптов сборки популярных программ 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. Наверное, я был слишком дешев:)

Ответ 6

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