Установка службы 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 не двигается, это должно работать.