Выпуск java-приложения на другой ОС

У меня есть приложение Java, которое я хочу выпустить как exe или dwg и т. Д., Чтобы пользователи на разных платформах могли дважды щелкнуть его и запустить. Но для того, чтобы мой код работал действительно хорошо, мне нужно, чтобы он работал как служба Windows и что бы это ни было эквивалентно в других ОС. Использование веб-запуска Java не является решением, потому что, как я понимаю, если клиентский компьютер выключится, пользователю придется снова дважды щелкнуть exe. Я пробовал обертку службы Java, но не вижу, как сделать ее готовой к выпуску.

Спасибо, Пранабеш


person Community    schedule 13.08.2009    source источник
comment
Этот вопрос частично охватывает ту же тему (см. Пункт 3): stackoverflow.com/questions/995881/   -  person Jonik    schedule 13.08.2009
comment
Я могу сделать exe для Windows с помощью launch4j, но как мне сделать dmg для Mac?   -  person    schedule 14.08.2009


Ответы (3)


Если вам подходит коммерческий инструмент, я бы порекомендовал install4j . Он может создавать установщики для наиболее распространенных платформ, которые, в частности, поддерживают установку приложения как службы.

Цитата с их страницы функций:

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

person Jonik    schedule 13.08.2009
comment
Согласитесь, мы используем этот продукт и создаем файлы для конкретных платформ для Windows, MAC и Lunix. У него также есть интересные специальные опции для разных ОС. Как уже упоминалось, вы можете установить в Windows как услугу. Для меня выгодно то, что он также предоставляет встроенный механизм для автоматических обновлений. У него также есть хороший API. - person Allan; 13.08.2009

Java Service Wrapper - это вариант для Windows / Unix / OSX. Пользуюсь без проблем уже несколько лет. Это отличное программное обеспечение, которое хорошо обрабатывает сбои / зависания JVM, автоматически перезагружая службу, если что-то случится.

Что касается распространения приложения, я бы порекомендовал NSIS в Windows. Он может создать хороший установщик, который поместит файлы туда, где это необходимо, и запустит заглушку JSW для установки службы в целевой системе. Для Unix вы можете просто упаковать его в tar.gz и предоставить инструкции по установке службы (скопируйте сценарий sh в /etc/init.d, установите его с помощью chkconfig или любого другого системно-зависимого инструмента для управления сценариями запуска). На Mac вы должны упаковать его в dmg.

Вы также можете попробовать izpack, если хотите более кроссплатформенное решение. izpack может запускаться из веб-сайта java, как собственное приложение Windows или Mac, проверьте страницу на странице утилит.

IzPack - это универсальное решение для упаковки, распространения и развертывания приложений. Он полностью кроссплатформенный и генерирует единый установщик. Таким образом, это альтернатива нативным решениям, таким как установщики для конкретных платформ и менеджеры пакетов. Установщикам, созданным с помощью IzPack, для работы требуется только виртуальная машина Java.

person CrazyCoder    schedule 13.08.2009

Вам нужно будет создать пакет выпуска для каждой операционной системы, для которой вы собираетесь выпускать.

Для Windows, например, вам нужно будет найти исполняемую оболочку. Прошло много времени с тех пор, как я это делал, но я помню, как мы подписали пару, которая на самом деле создала установщик как часть процесса.

Launch4j - это то, что я только что вспомнил

person jeef3    schedule 13.08.2009
comment
Я могу сделать exe для Windows с помощью launch4j, но как мне сделать dmg для Mac? - person ; 14.08.2009