公司业务跑的Jar包,在linux上倒是好弄,直接用脚本后台运行,启动关闭也方便。但在windows环境跑都是用cmd窗口跑,容易遇到服务器断电关闭后不能及时启动,或者人为误操作导致服务停止,为避免每次去手动启动麻烦的很,就想搞个windows服务,让它能后台运行,还可以开机自启。
实现步骤
1、下载WinSW 64位:https://github.com/winsw/winsw/releases
2、将下载的WinSW.NET4.exe文件复制到jar程序所在文件夹中(我的jar包是xxx.jar)
3、将WinSW.NET4.exe重命名为xxx.exe(和jar同名)
4、同级目录下新建一个xml文件,命名为xxx.xml,写入以下内容
<service>
<id>xxx</id>
<name>xxx</name>
<description>xxx</description>
<env name="JAVA_HOME" value="%JAVA_HOME%"/>
<executable>java</executable>
<arguments>-Xms100m -Xmx512m -Dfile.encoding=UTF-8 -jar D:\test\xxx\xxx.jar</arguments>
<startmode>Automatic</startmode>
<logpath>D:logs\log</logpath>
<logmode>rotate</logmode>
</service>
5、xml补充说明
id,name,description我都写成了和jar包相同的名称
arguments:-jar后面写上自己jar包的路径
logpath:log文件路径
6、运行:在exe程序的所在目录按住shift+鼠标右键,进入powershell,然后执行xxx.exe install
PS D:\test\xxx> .\xxx.exe install
Installing service 'xxx (xxx)'...
Service 'xxx (xxx)' was installed successfully.
7、出现上图的"Service ‘xxx (xxx)’ was installed successfully",表示服务安装成功,然后去Windows服务里面启动服务(服务名称是xxx)
8.卸载已经安装的服务
在exe程序的所在目录按住shift+鼠标右键,进入powershell,然后执行xxx.exe uninstall
安装完成后每次更新替换jar包,再重启windows服务即可,界面看着干净,也不怕误操作导致的服务关闭,省心。