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

我想在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命令创build了一个服务:

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

该服务是创build的,当我启动服务Windows启动它,但它回来的消息说:

该服务没有响应控制function。

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

有一些简单的东西我错过了,但是我对Java并不是非常有经验,所以如果在这里有任何一个人可以给我指导的话,那将是非常受欢迎的!

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

您可以使用像NSSM ,SRVANY或任何其他服务“包装”程序的工具来获得一个非服务EXE作为服务运行。

在特定于Java的前端, WinRun4J应用程序充当“java.exe”的替代品,可用于将Java程序作为服务启动。 当Java程序的命令行太长,服务控制pipe理器无法处理时,我已经使用它了。

请参阅此线程在计算器上