最近在做的一個java項目需要作為windows的service在windows上運行。最初的解決方案就是利用windows自帶的sc命令來創建windows service,也確實注冊成功了。
具體的命令是sc create ... (最后service執行的命令就類似...java.exe -jar a.jar)
但是發現無法啟動,會報error 1053 the service did not respond to the start or control request in a timely fashion。
后來查了半天問題,終於在Stack Overflow上看見有一個post里有個回答提到java.exe不可以直接做成service!
解決方案基本都是利用第三方的工具,類似nssm,java service wrapper等。因為我這邊的需求是用戶下載安裝包要盡量小,所以我直接采用了把nssm打到安裝包里,然后用nssm去注冊。
nssm流程:
nssm install...
nssm start…(具體的語法可以google~遠遠不止這兩個命令,可以設置很多參數)
可參考
https://stackoverflow.com/questions/37003271/inno-setup-and-nssm-service-working-integration