我刚刚继承了一个java应用程序,需要在XP和vista上作为服务安装。我已经8年没有使用任何形式的windows了,我从来没有创建过服务,更不用说从java应用程序(我已经为应用程序准备了一个jar和一个依赖jar - log4j)。使其作为服务运行所必需的魔力是什么?我已经得到了源代码,所以代码修改(尽管最好避免)是可能的。


当前回答

还有一个答案是“另一个Java服务包装器”,这似乎是Java服务包装器的一个很好的选择,因为它有更好的许可。它的目的还在于便于从JSW迁移到YAJSW。当然,对于我这个刚刚接触windows服务器并试图让Java应用程序作为服务运行的人来说,它非常容易使用。

我发现了一些其他的,但最终没有使用:

Java服务启动器我没有使用它,因为它看起来比YAJSW更复杂。我觉得这不是包装。 JSmooth创建窗口的服务不是它的主要目标,但可以做到。我没用这个,因为从2007年开始就没有活动了。

其他回答

另一个不错的选择是FireDaemon。它被一些大公司使用,比如NASA、IBM等;他们的网站上有完整的列表。

我总是只使用sc.exe(参见http://support.microsoft.com/kb/251192)。它应该安装在从SP1开始的XP上,如果它不符合你的Vista风格,你可以通过Vista资源包下载加载它。

我没有使用Java做过太复杂的事情,但是使用完全限定的命令行参数(x:\ Java .exe ....)或使用Ant创建一个脚本来包含依赖项和设置参数对我来说都很好。

以下是不同解决方案的比较: http://yajsw.sourceforge.net/#mozTocId284533

个人喜欢launch4j

我在Java服务包装器方面有一些运气

我认为Java服务包装器工作得很好。请注意,集成应用程序有三种方法。如果您不想更改代码,那么听起来选项1最适合您。配置文件可能有点疯狂,但只要记住(对于选项1)您正在启动并将为其指定参数的程序是它们的辅助程序,然后它将启动您的程序。他们对此有一个示例配置文件。