0

我为我的 java 项目成功构建了 nsis 脚本。我已将我的 java 项目转换为 bat(Windows 机器需要 bat 文件才能执行)文件,名为test.bat. 我的安装步骤成功完成。

安装后bat文件无法启动服务。我检查了以下路径

Start Menu -> Control Panel -> Administrative Tools -> Services.

我可以看到此列表中的服务,但我看不到我的服务文件名。

我试过以下脚本行

!define MUI_FINISHPAGE_RUN "$INSTDIR\test.bat"

我也试过这个

Function test
  ExecShell "" "$INSTDIR\test.bat"
FunctionEnd

如何解决这个问题?

4

1 回答 1

1

我使用http://wrapper.tanukisoftware.org的包装器安装了一个 java 服务,它能够将 jar 安装为服务。IIRC,您将需要在您的应用程序中安装 wrapper.exe、wrapper.dll 和 wrapper.jar。查看网站了解更多信息。

然后你让 NSIS 调用该包装器在目标机器上安装服务:

Detailprint "Installing service"
nsExec::Exec "$\"$INSTDIR\wrapper.exe$\" -i $\"$INSTDIR\wrapper.conf$\""

卸载程序部分:

Detailprint "Stopping service"
nsExec::Exec "$\"$INSTDIR\wrapper.exe$\" -p $\"$INSTDIR\wrapper.conf$\""

Detailprint "Removing service"
nsExec::Exec "$\"$INSTDIR\wrapper.exe$\" -r $\"$INSTDIR\wrapper.conf$\""

如您所见,您还必须创建一个 wrapper.conf 来指定有关服务的详细信息(例如,要使用哪个主类)。安装服务后,您应该可以使用类似...

Exec '"net start your_service_name"'
于 2012-10-26T21:53:12.117 回答