Запустите приложение Java как сервис - PullRequest
22 голосов
/ 10 сентября 2009

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

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

Ответы [ 8 ]

12 голосов
/ 10 сентября 2009

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

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

9 голосов
/ 26 мая 2010

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

См. http://commons.apache.org/daemon/

6 голосов
/ 10 сентября 2009

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

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

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

2 голосов
/ 10 сентября 2009

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

1 голос
/ 24 мая 2016

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

nssm install MyService "%JAVA_HOME%\bin\java.exe" -jar "path\to\the\file.jar"
1 голос
/ 11 сентября 2009

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

0 голосов
/ 11 октября 2010

JSmooth может это сделать, и его можно написать с помощью ant.

0 голосов
/ 18 июня 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...