【问题标题】:Running Java applications as a service - startup error captures?将 Java 应用程序作为服务运行 - 启动错误捕获?
【发布时间】:2011-05-11 20:27:39
【问题描述】:

我正在尝试升级我们的几台服务器以使用安装在其上的应用程序的当前版本,但我有点卡住了。我已经更换了所有东西,并将我的问题缩小到 1 个 .jar 文件。如果我使用这个特定文件的新版本,我无法启动服务,而使用旧版本(以及每个其他文件的新版本),它运行良好。

当我尝试启动服务时,我收到以下消息:Could not start <service> service on Local Computer. The service did not return an error. This could be an internal Windows error or an internal service error.

我查看了事件查看器,每次我尝试启动它时,它都有这些条目:

<Service> has started

Could not find the service start class

<service> has failed to start

还有其他地方可以让我了解它无法启动的原因吗?

我们正在使用“JavaService”实用程序来创建 Windows 进程。这个服务器也在运行 jboss。

编辑:我还确定这不是我的 SQL 数据库的问题,因为我刚刚完成了版本之间的所有升级。我仍然无法使用新的 .jar 启动它,而旧的 .jar 仍然有效。

谢谢!

【问题讨论】:

  • 也许这很明显,但是您是否尝试过手动运行相同的命令(如服务定义中的)?
  • @Grzegorz 我有,当我尝试从命令行运行它时没有任何反应,它只是立即返回

标签: java windows-services jboss


【解决方案1】:

您不能将 java 应用程序作为服务执行。 Windows 服务实现了 java.exe 或 javaw.com 没有的特定接口。您将需要一个包装器来实现此功能。一个这样的包装器是http://wrapper.tanukisoftware.org

【讨论】:

    【解决方案2】:

    正如 Pierre 所说,您不能将 java 直接作为 Windows 服务运行。 Apache commons daemon (a.k.a. Procrun) 是另一个工具,它可以将 Java 应用程序改编为 Windows 服务。

    【讨论】:

    • 我们使用“JavaService”实用程序将 Java 应用程序用作 Windows 服务
    • @user564636:请将该信息添加到您的问题中,我认为这是相关的。
    【解决方案3】:

    我发现了问题!

    在查看配置文件几天之后,我终于注意到了一些事情:我们现在使用 log4j 进行日志记录,但它没有包含在 .jar 的清单中!我将它添加到清单中,它现在启动了!

    感谢大家的帮助:]

    【讨论】:

      猜你喜欢
      • 2010-11-27
      • 2021-12-31
      • 1970-01-01
      • 2011-07-08
      • 2012-06-27
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多