【问题标题】:Running Java jars as windows service将 Java jar 作为 Windows 服务运行
【发布时间】:2018-05-22 13:18:43
【问题描述】:

我有一个可执行的 jar,我正在尝试使用 sc.exe 创建一个 Windows 服务。我使用以下代码创建服务:

sc create "TestService" binPath= "C:\Program Files\Java\jdk1.6.0_03\jre\bin\java.exe -jar C:\abc\MainClass.jar"

服务已创建,但当我尝试启动服务时,出现以下错误:

Error 1053: The service did not respond to the start or control request in a timely fashion.

后来我尝试使用Java Service Wrapper(社区版),服务启动了一段时间,但每次都停止。包装器日志告诉类似:

Advice:
The Wrapper consists of a native component as well as a set of classes
which run within the JVM that it launches.  The Java component of the
Wrapper must be initialized promptly after the JVM is launched or the
Wrapper will timeout, as just happened.  Most likely the main class
specified in the Wrapper configuration file is not correctly initializing
the Wrapper classes:
com.MainClass
While it is possible to do so manually, the Wrapper ships with helper
classes to make this initialization processes automatic.
Please review the integration section of the Wrapper's documentation
for the various methods which can be employed to launch an application
within the Wrapper

谁能告诉我如何在不使用外部软件的情况下将 jar 作为 Windows 服务运行,因为我无法在客户的产品环境中使用任何第三方应用程序。

如果不是我需要在 Java Service Wrapper 中进行的其他配置以使服务启动。

我试图在 stackoverflow 上找到一些与此相关的信息,但我没有得到任何东西。如果有人对 stackoverflow 有任何意见,请随时发表评论。

【问题讨论】:

标签: java windows-services java-service-wrapper


【解决方案1】:

我以前在生产环境中使用过这种方法,因此我可以向您保证,它可以安全使用。

Jar 文件被包装在一个 exe 中,然后它被添加到 windows 服务调度程序(或者你想调用它)。如果你有一个 Maven 项目,这也很容易完成。

https://dzone.com/articles/installing-a-java-application-as-a-windows-service

编辑:你说你不能使用外部软件。通过这种方法,所需的一切都打包在 exe 文件中。包括 JRE,我希望您的客户的政策允许这样做。

【讨论】:

    猜你喜欢
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多