2012-10-09 64 views
0

我为我的java项目成功构建nsis脚本。我已经将我的Java项目转换为bat(Windows机器需要bat文件执行),文件名为test.bat。我的安装步骤已成功完成。使用NSIS脚本安装后无法运行我的应用程序?

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

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

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

我曾尝试下面的脚本行

!define MUI_FINISHPAGE_RUN "$INSTDIR\test.bat" 

此外,我已经试过这一个

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

如何解决这个问题?

+0

是您的应用程序的服务?您的nsis安装程序是否将您的应用程序注册为Windows服务? Windows服务需要执行特定的API集。还有什么你的意思是“将Java项目转换成蝙蝠”?您是否将.jar重命名为.bat? – Seki

+0

我不知道如何注册我的应用程序作为windows service.can你解释我吗?在我的bat文件中包含所有jar文件的类路径。 – Ami

回答

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"' 
相关问题