将Java应用程序作为服务运行

时间:2009-09-10 16:44:42

标签: java windows windows-services

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

有没有办法在不依赖外部应用程序的情况下运行可执行JAR作为服务?我目前已安装该服务,但无法启动。这是我遇到困难的地方,除了有关JSW的信息之外,我无法在谷歌上找到任何东西。

8 个答案:

答案 0 :(得分:12)

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

BTW,IANAL,但我怀疑JSW的人正在传播FUD,他们的软件可用于在GPL许可下为商业应用程序提供服务,就像人们可以通过gzip商业应用程序进行再分发一样。我可能完全错了,但是:)

答案 1 :(得分:9)

另一种选择,Apache Commons Daemon的procrun。

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

答案 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编写脚本。