Установка службы Java в Windows 7 с помощью NSSM

Я пытаюсь использовать Inno Setup для установки службы Windows в виде файла JAR, работающего под управлением NSSM (Non-Sucking Service Manager).

nssm install JarService java -jar service.jar
nssm start JarService

заканчивает тем, что переводит мою службу в состояние «Приостановлено», и, похоже, она никогда не запускается.

Поскольку расположение java.exe может меняться с обновлениями, я хочу иметь возможность запускать службу без явного пути к java.exe, как я могу запустить службу java без явного пути в NSSM?


person mcarr    schedule 31.07.2015    source источник


Ответы (3)


Я должен был сделать что-то очень похожее только на прошлой неделе. Когда я заменяю «java» полным путем к java.exe, я могу запустить службу, поэтому:

nssm install JarService FullPath/java.exe -jar service.jar

должно сработать. Я не думаю, что NSSM ищет путь для своего приложения.

person rkh    schedule 31.07.2015
comment
получение ошибки при запуске службы Windows не может запустить службу, если это не служба Microsoft, обратитесь к конкретному сервису с кодом ошибки 3 - person Waqas; 01.03.2020

В ОС Windows 2012 R2 я использовал:

nssm install MyServiceName "C:\Program Files\MyServiceName\start.bat"

Затем в пакетном файле start.bat у меня есть:

java -cp "C:\Program Files\MyServiceName\MyServiceName.jar" com.package.MyServiceMainClass
person Brad Rippe    schedule 05.02.2018

Мне пришлось создать сценарий powershell для запуска службы Java:

java.exe -jar service.jar

Затем я укажу полный путь к powershell в разделе Inno Setup [Run]:

Filename: "{app}\nssm.exe"; Parameters: "install ""{#MyAppName}"" ""{sys}\WindowsPowerShell\v1.0\powershell.exe"" ""-ExecutionPolicy Unrestricted -File {app}\runservice.ps1"""; Flags: runhidden 

Пока powershell не двигается, это должно работать.

person mcarr    schedule 04.08.2015