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

时间:2015-07-31 18:25:46

标签: java windows-services inno-setup nssm

我正在尝试使用Inno Setup将Windows服务安装为在NSSM(非吸引服务管理器)下运行的JAR文件

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

最终将我的服务置于“暂停”状态,似乎无法启动。

由于java.exe的位置随更新而变化,我希望能够在没有显式路径java.exe的情况下运行服务,如何在没有显式路径的情况下启动java服务NSSM?

3 个答案:

答案 0 :(得分:8)

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

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

应该有效。我不认为NSSM会搜索它的应用路径。

答案 1 :(得分: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

答案 2 :(得分: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不移动,这应该有用。