使用 SC.EXE 将 Java jar 作为 Windows 服务启动

使用 SC.EXE 将 Java jar 作为 Windows 服务启动

我想在 Windows Server 2008 R2 机器上启动 Minecraft 服务器作为服务。

此命令行工作正常:

c:\Windows\System32\java.exe -cp c:\Data\minecraft-server\minecraft-server.jar com.mojang.minecraft.server.MinecraftServer -Xms512M -X mx512M

我使用以下 SC 命令创建了一个服务:

sc config MinecraftServer binPath= "c:\Windows\System32\java.exe -cp c:\Data\minecraft-server\minecraft-server.jar com.mojang.minecraft.server.MinecraftServer -Xms512M -Xmx512M"

服务已创建,当我启动服务时,Windows 会启动它,但随后它会返回一条消息,提示:

该服务没有响应控制功能。

该服务确实启动了,但由于某种原因,命令没有让系统知道它已启动。

有一些简单的东西我错过了,但是我对 Java 不是很有经验,所以如果这里有人能给我指导的话我会非常欢迎!

答案1

您不能将任何旧 EXE 作为服务运行。服务需要响应来自服务控制管理器的回调,将非服务 EXE 作为服务运行会导致您看到的消息。

您可以使用类似的工具国家安全监测中心、SRVANY 或任何其他服务“包装器”程序,以使非服务 EXE 作为服务运行。

在 Java 特定方面运行4J应用程序可替代“java.exe”,并可用于将 Java 程序作为服务启动。当 Java 程序的命令行太长而服务控制管理器无法处理时,我就使用它。

答案2

参考此线在 stackoverflow 上

相关内容