winsw下载地址https://github.com/kohsuke/winsw/releases
下载.exe文件,这个exe文件的名字可以根据自己的需要修改
将程序打成jar包,winsw使用只需要配置一个与.exe文件同名的xml文件即可
这里把.exe文件与xml文件重命名demo.exe与demo.xml
主要是demo.xml的内容,如下
<service>
<id>demo</id>
<name>demo</name>
<description>winsw将jar包注册为windows服务demo</description>
<env name="JAVA_HOME" value="%JAVA_HOME%"/>
<executable>java</executable>
<arguments>-jar D:\demo\jar\demo-0.0.1-SNAPSHOT.jar</arguments>
<startmode>Automatic</startmode>
<logpath>D:\demo\logs</logpath>
<log mode="roll-by-size">
<sizeThreshold>10240</sizeThreshold>
<keepFiles>8</keepFiles>
</log>
</service>
name与description是注册到windows服务后的名称与描述,env配置读取windows配置的java环境变量,executable与arguments里面的内容拼接起来就是我们平常使用的启动jar包的命令,arguments中配置各种启动参数,jar包路径使用绝对路径,相对路径需要配置环境变量像JAVA_HOME那样使用env标签读取,比较麻烦,startmode设置为windows开机自启动,如果不需要开机自启可以去掉这个标签,logpath设置日志输出路径,这里也是使用绝对路径输出到logs文件夹,log标签内配置日志模式,这个可以去官方文档了解。
配置完这些之后,为方便起见可以做几个bat脚本,脚本内容很简单,调用exe文件即可,当然手动输入命令也可以
restart.bat脚本如下:
demo.exe stop
demo.exe uninstall
demo.exe install
demo.exe start
前两行是uninstall.bat脚本的内容,后两行是install.bat脚本的内容
将程序jar包放进jar文件夹就制作完成了
然后打开命令行,进入demo目录,执行restart.bat脚本即可
执行后打开windows服务,可以看到
说明服务注册成功