使用NSIS脚本安装后无法运行我的应用程序?

时间:2012-10-09 13:51:32

标签: windows-services nsis

我为我的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

如何解决这个问题?

1 个答案:

答案 0 :(得分: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"'