Запустите приложение Java как сервис

Я хотел бы запустить приложение Java в качестве службы. К сожалению, я ограничен в том, что не могу использовать что-то вроде Java Service Wrapper (который, похоже, является отличным инструментом).

Есть ли способ запустить исполняемый JAR как сервис, не полагаясь на внешние приложения? В настоящее время у меня установлена ​​служба, но она не запускается. Вот где я застреваю, и я не смог найти в Google ничего, кроме информации о JSW.

8 ответов

Решение

Существует LGPL клон Java Service Wrapper: http://yajsw.sourceforge.net/

Кстати, IANAL, но я подозреваю, что сотрудники JSW распространяют FUD, и их программное обеспечение может использоваться для предоставления услуг коммерческим приложениям по лицензии GPL, точно так же, как можно распространять коммерческое приложение для распространения. Хотя я могу быть совершенно неправ в этом:)

Другой вариант - прокрутка Apache Commons Daemon.

Смотрите http://commons.apache.org/daemon/

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

Пока не существует JVM, которая реализует эти функции напрямую (и я не знаю ни одной), вам понадобится какая-то обертка.

Я успешно использовал srvany для службы Windows на основе Java (в основном это позволяет запускать любую программу в качестве службы Windows, и она отлично работает с Java)

Вы можете использовать NSSM следующим образом:

nssm install MyService "%JAVA_HOME%\bin\java.exe" -jar "path\to\the\file.jar"

Я еще не пробовал (пока), но Launch4j выглядит так, как будто он может удовлетворить ваши потребности.

Еще один вариант winrun4j. лицензия - CPL затмения.

Самым простым способом, который я нашел, был RunAsService.

Сотрудник рекомендовал инструмент под названием SC, но я не пробовал его.

JSmooth может сделать это, и это может быть написано с помощью муравья.

Другие вопросы по тегам