Установка службы 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?

3 ответа

Решение

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

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

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

В ОС 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

Мне нужно было создать скрипт powershell для запуска java-сервиса:

java.exe -jar service.jar

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

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

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

Другие вопросы по тегам