10

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

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

最终将我的服务置于“暂停”状态,它似乎从未开始。

由于 的位置java.exe可以随着更新而改变,我希望能够在没有明确路径的情况下运行服务java.exe,如何在 NSSM 中没有明确路径的情况下启动 java 服务?

4

3 回答 3

10

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

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

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

于 2015-07-31T18:30:22.177 回答
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
于 2018-02-05T17:43:15.057 回答
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不动,这应该可以工作。

于 2015-08-04T19:38:00.487 回答