使用 NSSM 在 Windows 7 上安装 Java 服务

Installing a Java service on Windows 7 with NSSM

我正在尝试使用 Inno Setup 将 Windows 服务安装为 JAR 文件 运行ning 在 NSSM(Non-Sucking Service Manager)

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

最终将我的服务置于 "Paused" 状态,而且它似乎从未启动过。

由于 java.exe 的位置会随着更新而改变,我希望能够 运行 服务而无需 java.exe 的显式路径,如何启动 java NSSM 中没有显式路径的服务?

上周我不得不做一些非常相似的事情。 当我用 java.exe 的完整路径替换 "java" 时,我可以获得 运行 的服务,所以:

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

应该可以。我认为 NSSM 不会搜索其应用程序的路径。

我必须为 运行 java 服务创建一个 powershell 脚本:

java.exe -jar service.jar

然后,我在 Inno Setup 的 [运行] 部分引用了 powershell 的完整路径:

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

只要 powershell 不动,这应该可以。

在 Windows 2012 R2 OS 上,我使用了:

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

然后在批处理文件中,start.bat,我有:

java -cp "C:\Program Files\MyServiceName\MyServiceName.jar" com.package.MyServiceMainClass