我想将Java应用程序作为服务运行。不幸的是,我受限制的是我不能使用像Java Service Wrapper这样的东西(这似乎是一个很好的工具)。
有没有办法在不依赖外部应用程序的情况下运行可执行JAR作为服务?我目前已安装该服务,但无法启动。这是我遇到困难的地方,除了有关JSW的信息之外,我无法在谷歌上找到任何东西。
答案 0 :(得分:12)
Java Service Wrapper的LGPL克隆:http://yajsw.sourceforge.net
BTW,IANAL,但我怀疑JSW的人正在传播FUD,他们的软件可用于在GPL许可下为商业应用程序提供服务,就像人们可以通过gzip商业应用程序进行再分发一样。我可能完全错了,但是:)
答案 1 :(得分:9)
另一种选择,Apache Commons Daemon的procrun。
答案 2 :(得分:6)
应作为Windows服务运行的程序必须提供Windows服务管理器用来与该服务通信的某些功能。
只要没有直接实现此功能的JVM(我也不知道),您将需要某种包装器。
我已经成功地将srvany用于基于java的Windows服务(基本上它允许将任何程序作为Windows服务运行,并且它可以与java一起使用)
答案 3 :(得分:2)
我还没有尝试过(但是),但Launch4j看起来可能符合您的需求。
答案 4 :(得分:1)
还有一个选项winrun4j。许可证是eclipse的CPL。
答案 5 :(得分:1)
您可以像这样使用NSSM:
nssm install MyService "%JAVA_HOME%\bin\java.exe" -jar "path\to\the\file.jar"
答案 6 :(得分:0)
我找到的最简单的方法是RunAsService。
一位同事推荐了一个名为SC的工具,但我没有尝试过。
答案 7 :(得分:0)
JSmooth可以做到,并且可以使用ant编写脚本。