我正在艰难地尝试升级我们的几台服务器以使用其上安装的当前版本的应用程序而且我有点陷入困境。我已经取代了所有内容,并将我的问题缩小到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仍然有用。谢谢!
答案 0 :(得分:2)
您无法将Java应用程序作为服务执行。 Windows服务实现了java.exe或javaw.com没有的特定接口。您将需要一个包装器来实现此功能。一个这样的包装器是http://wrapper.tanukisoftware.org。
答案 1 :(得分:1)
正如皮埃尔所说,你不能将java 直接作为Windows服务运行。 Apache commons daemon (a.k.a. Procrun)是另一个将java应用程序用作Windows服务的工具。
答案 2 :(得分:1)
我发现了这个问题!
在查看配置文件几天后,我终于注意到了一些事情:我们现在正在使用log4j进行日志记录,但它没有包含在.jar的清单中!我把它添加到清单中,它现在启动了!
感谢大家的帮助:]