1、下載下傳winsw
下載下傳位址:https://github.com/kohsuke/winsw/releases
我這裡下載下傳的是2.3.0版。
下載下傳sample-minimal.xml和WinSW.NET4.exe兩個檔案。
2、将三個檔案放在同一個檔案夾中
WinSW.NET4.exe
sample-minimal.xml
springboot jar包
3、修改檔案名字
需要将winsw執行程式跟xml改成同樣的名字,推薦使用項目名+Service的命名方式,比如:
WinSW.NET4.exe修改為rexel-middleware-0.0.1.exe
sample-minmal.xml修改為rexel-middleware-0.0.1.xml
4、編輯xml檔案
配置内容
<configuration>
<!--安裝成Windows服務後的服務名-->
<id>rexel-middleware</id>
<!--顯示的服務名稱-->
<name>rexel-middleware</name>
<!--對服務的描述-->
<description>rexel-middleware for hzzg project</description>
<!--這裡寫java的路徑,如何配置了環境變量直接寫"java"就行-->
<executable>java</executable>
<!---jar後面的是項目名,可以配置記憶體限制如-Xmx256m代表堆記憶體最大值為256MB -->
<arguments>-jar rexel-middleware-0.0.1.jar</arguments>
<!--日志模式-->
<logmode>rotate</logmode>
</configuration>
5、執行指令安裝服務
打開系統指令行視窗,進入到rexel-middleware-0.0.1.exe所在檔案夾,
然後執行指令安裝服務指令:rexel-middleware-0.0.1.exe install。
執行發現報錯如下:
錯誤日志:
D:\MyWork\22_Github\rexel-cn\rexel-jarvis\rexel-middleware\install>rexel-middleware-0.0.1.exe install
2019-12-02 10:25:24,938 INFO - Installing the service with id 'myapp'
2019-12-02 10:25:24,964 FATAL - WMI Operation failure: AccessDenied
WMI.WmiException: AccessDenied
在 WMI.WmiRoot.BaseHandler.CheckError(ManagementBaseObject result)
在 WMI.WmiRoot.ClassHandler.Invoke(Object proxy, MethodInfo method, Object[] args)
在 winsw.WrapperService.Run(String[] _args, ServiceDescriptor descriptor)
在 winsw.WrapperService.Main(String[] args)
WMI.WmiException: AccessDenied
在 WMI.WmiRoot.BaseHandler.CheckError(ManagementBaseObject result)
在 WMI.WmiRoot.ClassHandler.Invoke(Object proxy, MethodInfo method, Object[] args)
在 winsw.WrapperService.Run(String[] _args, ServiceDescriptor descriptor)
在 winsw.WrapperService.Main(String[] args)
解決方法:
使用管理者權限重新打開cmd視窗,重新執行rexel-middleware-0.0.1.exe install
6、啟動服務
指令提示符界面輸入指令啟動服務。
指令:net start rexel-middleware
7、檢視是否啟動成功
打開系統服務功能:運作——輸入services.msc
即可看見自己命名的服務rexel-middleware。
我的java程式是一個從外部接口定時拉取資料,并寫入到mysql的程式,
可以看到已經在開始寫入資料了,證明程式運作成功。
8、重新開機測試
重新開機電腦後該服務會自動啟動,執行第6步(net start rexel-middleware)可檢查是否成功。
9、删除服務
分為兩步:
步驟1:停止服務
指令提示符界面輸入指令停止運作服務:net stop rexel-middleware
步驟2:删除服務
指令提示符界面輸入指令可删除服務:rexel-middleware-0.0.1.exe uninstall
10、修改為批處理檔案
上面所有的指令都可以寫在批處理檔案中,部署的時候就可以實作一鍵部署了。
例如start.bat内容如下:
rexel-middleware-0.0.1.exe install
net start rexel-middleware
例如stop.bat内容如下:
net stop rexel-middleware
rexel-middleware-0.0.1.exe uninstall
--END--