在Windows服务中包装jar文件

时间:2012-12-26 09:07:42

标签: java jar

您是否有使用命令行运行jar文件的经验,包含在Windows服务中?

我正试图找到一种方法来运行jar文件而不登录到机器,因为它允许命令shell,我想知道这是不是一个好主意。

谢谢!


原帖:

我正在尝试运行Associated Press的Web Feeds Manager,它基本上是一个jar文件,可以通过双击登录时运行。

我想运行相同的文件,但没有登录到计算机。在他们的手册(http://wfm.ap.org/admin/content/help/Running_Agent_on_a_Remote_Server.htm)中,他们使用命令行参数编写了如何做到这一点。

基本上我喜欢jar作为Windows服务运行,无论谁登录,但谷歌搜索显示它有问题。

您是否有远程运行jar文件的经验?有什么陷阱?

谢谢!

5 个答案:

答案 0 :(得分:2)

在谷歌搜索中,我看到了这篇文章 -

Running Jar Applications as a Windows Service

它提到了来自Tanukisoftware.org的开源Java Service Wrapper项目,以完成此任务。

注意:我个人没有使用过。

答案 1 :(得分:0)

如果您对在启动/关闭时启动/停止服务不感兴趣,但您只是希望手动启动程序并在注销后继续运行,那么您就是这样做的:

$ nohup java -jar foobar.jar > foobar.log 2>&1 &

这意味着:启动我的foobar.jar(java -jar)并在我注销(nohup)后将stdout重定向到foobar.log(>)以及stderr(2>& 1)并保持运行它在后台运行(& at end)。

相反,如果您有兴趣在Linux机器中安装“服务”,则有很多选项,具体取决于您使用的分发版。 最常见的是upstart(对于ubuntu)和System V init脚本(Redhat或其他)。 cron也可用于在启动/关闭时启动/停止服务。 您可以在init系统here上找到安装Java应用程序(hudson)的示例,或者使用upstart执行相同的操作。或者,正如我所说,cron可能是一种选择。

在Windows上,有Java Service Wrapper。而且不多。

答案 2 :(得分:0)

对于Windows Java Service Wrapper是一个更好的选择

答案 3 :(得分:0)

我最喜欢的是Linux上的暴发户,但它只是Ubuntu。

在Windows上,根据this论坛,我看到了很多替代方案。

答案 4 :(得分:-1)

工具Exe4j

您可以使用Exe4j.exe,该工具从.jar文件生成service.exe文件

您可以从此处下载Exe4j:Download exe4j