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 лет назад, и он работал нормально.