1

您是否有过使用命令行运行 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 文件的经验吗?有哪些陷阱?

谢谢!

4

5 回答 5

2

在谷歌搜索中,我发现了这篇文章 -

将 Jar 应用程序作为 Windows 服务运行

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

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

于 2012-12-26T09:31:55.337 回答
0

如果您对在启动/关闭时启动/停止服务不感兴趣,但您只想手动启动程序并在注销后继续运行,您可以执行以下操作:

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

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

相反,如果您有兴趣在您的 linux 机器中安装“服务”,则有很多选择,具体取决于您使用的发行版。最常见的是upstart(用于 ubuntu)和 System V 初始化脚本(Redhat 或其他)。cron 还可用于在启动/关闭时启动/停止服务。您可以在此处找到在 init 系统上安装 java 应用程序 (hudson) 的示例,或者使用upstart做同样的事情。或者,正如我所说,cron可能是一种选择。

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

于 2012-12-26T09:26:26.750 回答
0

对于 windows Java Service Wrapper是更好的选择

于 2012-12-26T09:31:13.557 回答
0

我最喜欢的是 linux 上的新贵,但它只是 Ubuntu。

在 Windows 上,根据这个论坛,我看到了许多替代方案。

于 2013-02-27T14:43:41.613 回答
-1

工具 Exe4j

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

您可以从这里下载 Exe4j:下载 exe4j

于 2013-08-15T09:06:11.587 回答