2012-10-09 89 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"' 
相關問題