Назад | Перейти на главную страницу

Запустите Java jar как службу Windows с помощью SC.EXE

Я хочу запустить сервер Minecraft как услугу на машине с Windows Server 2008 R2.

Эта командная строка отлично работает:

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, поэтому, если кто-нибудь из присутствующих может дать мое руководство, это будет очень кстати!

Вы не можете просто запустить любой старый EXE как службу. Службы должны отвечать на обратные вызовы из диспетчера управления службами, а запуск не служебного EXE в качестве службы приведет к появлению сообщений, которые вы видите.

Вы можете использовать такой инструмент, как НССМ, SRVANY или любой из ряда других служебных программ-«оберток» для запуска не служебного EXE в качестве службы.

Что касается специфики Java, то WinRun4J application действует как замена java.exe и может использоваться для запуска программ Java как служб. Я использовал его, когда командная строка для Java-программы была слишком длинной для диспетчера управления службами.

Обратитесь к этому нить на stackoverflow