【问题标题】:How to install application as windows service using NSIS script?如何使用 NSIS 脚本将应用程序安装为 Windows 服务?
【发布时间】:2012-11-07 14:34:35
【问题描述】:

我已经为我的 java 项目编写了 nsis 脚本。我已经使用这个 nsis 脚本成功地创建了一个 exe 文件。我安装过程的最后一步是使用批处理文件将我的应用程序安装为 Windows 服务。我已使用以下代码通过命令行成功安装

"c:\program Files\program Files\test\bin\prunsrv.exe" //IS//servicename --Startup=auto --Jvm="Auto" --Classpath="%CLASSPATH%" --StartMode=jvm --StartClass=com.class.name  --StartParams start --StopMode=jvm --StopClass=com.class.name --StopParams stop

我通过 nsis 脚本执行的相同命令运行不正常。我试过下面的代码

Exec '"$INSTDIR\bin\prunsrv.exe" //IS//servicename --Startup=auto --Jvm="Auto" --Classpath="%CLASSPATH%" --StartMode=jvm --StartClass=com.class.name  --StartParams start --StopMode=jvm --StopClass=com.class.name --StopParams stop' 

$INSTDIR 指的是这个目录 c:\program Files\test。

【问题讨论】:

  • 问题究竟是什么?该服务是部分安装还是根本没有安装?配置错误?
  • 问题是当我运行 nsis 脚本时应用程序没有安装为 windows servcie。

标签: nsis


【解决方案1】:

在执行之前使用 ExpandEnvStrings 扩展 %classpath%...

【讨论】:

  • 如何在我的命令中使用 ExpandEnvStrings?我试过 ExpandEnvString $0 %CLASSPATH% Exec '"$INSTDIR\bin\prunsrv.exe" //IS//servicename --Startup=auto --Jvm="Auto" --Classpath="$0" --StartMode=jvm --StartClass=com.class.name --StartParams start --StopMode=jvm --StopClass=com.class.name --StopParams stop' 但这不起作用
  • 对我来说看起来不错,尝试将 NSIS 和工作批处理文件执行与进程监视器进行比较...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-14
  • 2013-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-13
相关资源
最近更新 更多