运行Java应用程序作为服务

我想运行一个Java应用程序作为服务。 不幸的是,我受限于我无法使用像Java Service Wrapper (这似乎是一个很好的工具)的东西。

有没有任何方式可以运行一个可执行的JAR作为一项服务,而不依赖于外部应用程序? 我目前已经安装了该服务,但无法启动。 这是我陷入困境,除了有关JSW的信息,我一直无法在Google上find任何东西。

Solutions Collecting From Web of "运行Java应用程序作为服务"

有一个Java Service Wrapper的LGPL克隆:http: //yajsw.sourceforge.net

顺便说一句,IANAL,但我怀疑JSW的人正在推广FUD,他们的软件可以用来在GPL许可下为商业应用程序提供服务,就像可以用gzip商业应用程序重新分配一样。 我可能完全错了,虽然:)

Apache Commons Daemon的另一个选项是procrun。

请参阅http://commons.apache.org/daemon/

应该以Windows服务运行的程序必须提供Windows服务管理器用于与该服务进行通信的某些功能。

只要没有JVM直接实现这个功能(而且我知道没有),你将需要某种包装。

我已经成功地使用srvany为一个基于Java的Windows服务(基本上它允许运行任何程序作为Windows服务,它与Java工作正常)

我还没有尝试过,但Launch4j看起来可以满足您的需求。

还有一个选项winrun4j 。 许可证是eclipse的CPL。

你可以像这样使用NSSM :

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

我发现最简单的方法是RunAsService 。

一位同事推荐了一个名为SC的工具,但我没有尝试。

JSmooth可以做到这一点,它是蚂蚁脚本。