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

10

我正在尝试使用Inno Setup将一个作为JAR文件运行在NSSM(Non-Sucking Service Manager)下的Windows服务进行安装。

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

最终导致我的服务处于“暂停”状态,而且似乎永远无法启动。

由于java.exe的位置可能会随着更新而改变,因此我希望能够在没有显式路径指向java.exe的情况下运行服务。在NSSM中如何启动Java服务?

3个回答

10

就在上周,我也需要做类似的事情。

当我用java.exe的完整路径替换"java"时,我可以成功地运行一个服务,所以:

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

应该可以正常工作。我认为NSSM不会在路径中搜索其应用程序。


当我启动服务时出现错误:“Windows 无法启动服务,如果它是非 Microsoft 服务,请参考服务特定错误代码 3”。 - Waqas
我也遇到了同样的问题,有解决方法吗? - Tanish Gupta

2
在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

1

我需要创建一个PowerShell脚本来运行Java服务:

java.exe -jar service.jar

然后,在Inno Setup的[Run]部分中,我引用了PowerShell的完整路径:
Filename: "{app}\nssm.exe"; Parameters: "install ""{#MyAppName}"" ""{sys}\WindowsPowerShell\v1.0\powershell.exe"" ""-ExecutionPolicy Unrestricted -File {app}\runservice.ps1"""; Flags: runhidden 

只要PowerShell不移动,这个应该可以工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接