我想运行一个Java应用程序作为服务。 不幸的是,我受限于我无法使用像Java Service Wrapper (这似乎是一个很好的工具)的东西。
有没有任何方式可以运行一个可执行的JAR作为一项服务,而不依赖于外部应用程序? 我目前已经安装了该服务,但无法启动。 这是我陷入困境,除了有关JSW的信息,我一直无法在Google上find任何东西。
有一个Java Service Wrapper的LGPL克隆:http: //yajsw.sourceforge.net
顺便说一句,IANAL,但我怀疑JSW的人正在推广FUD,他们的软件可以用来在GPL许可下为商业应用程序提供服务,就像可以用gzip商业应用程序重新分配一样。 我可能完全错了,虽然:)
Apache Commons Daemon的另一个选项是procrun。
应该以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可以做到这一点,它是蚂蚁脚本。