Inicie o Java jar como o serviço do Windows usando SC.EXE

1

Eu quero iniciar um Minecraft Server como um serviço em uma máquina com o Windows Server 2008 R2.

Esta linha de comando funciona bem:

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

Eu criei um serviço usando o seguinte comando 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"

O serviço é criado e quando inicio o serviço, o Windows o inicia, mas volta com uma mensagem que diz:

The service is not responding to the control function.

O serviço é iniciado, mas, por algum motivo, o comando não informa ao sistema que ele foi iniciado.

Existe algo simples que eu perdi, mas eu não sou muito experiente com Java, então se alguém aqui puder me orientar, seria muito bem vindo!

    
por Yooakim 13.04.2011 / 09:48

2 respostas

5

Você não pode simplesmente executar qualquer EXE antigo como um serviço. Os serviços precisam responder a retornos de chamada do Gerenciador de controle de serviços e a execução de um EXE sem serviço como um serviço causará as mensagens que você está vendo.

Você pode usar uma ferramenta como NSSM , SRVANY ou qualquer um de vários outros programas "wrapper" de serviço para obter um EXE sem serviço para ser executado como um serviço.

Na frente específica de Java, o aplicativo WinRun4J age como substituto de "java.exe" e pode ser usado para iniciar Java programas como serviços. Eu o usei quando a linha de comando para um programa Java era muito longa para o Gerenciador de Controle de Serviços.

    
por 13.04.2011 / 13:55
0

Consulte este thread no stackoverflow

    
por 13.04.2011 / 10:13

Tags