我为我的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
如何解决这个问题?
答案 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"'