2012-11-07 53 views
0

我爲我的java項目編寫了nsis腳本。我已經使用這個nsis腳本成功創建了一個exe文件。我的安裝過程的最後一步是使用批處理文件將我的應用程序安裝爲windows服務。我已經通過命令行使用以下代碼成功安裝了如何使用NSIS腳本將應用程序安裝爲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。

+0

問題是什麼?服務是部分安裝還是根本不安裝?錯誤的配置? – Anders

+0

問題是當我運行nsis腳本時,應用程序未安裝爲windows服務。 – Ami

回答

1

使用ExpandEnvStrings在exec之前展開%classpath%...

+0

如何使用ExpandEnvStrings來執行我的命令?我試過ExpandEnvString $ 0%CLASSPATH%Exec'「$ ISSTDIR \ 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' 但是這不起作用 – Ami

+0

對我來說看起來沒問題,試着比較NSIS和使用Process Monitor執行批處理文件執行... – Anders

相關問題