背景:
使用Spring Boot开发的Web项目,打包生成了一个jar包,希望能部署在Windows服务器中
尝试:
1、Spring Boot生成的jar包,可以直接用java -jar运行,但是前提是需要登录用户,而且注销用户后会退出程序,所以不可信。
2、使用计划任务,写一个bat批处理文件,里面写java -jar运行程序,然后吧bat文件作为一个计划任务运行;结果可能是因为任务启动时,系统资源未准备好,所以没有成功。
最终方案:
使用winsw
winsw是一个开源项目,程序以及源码可以在Git Hub中下载:https://github.com/kohsuke/winsw/releases
winsw是一个可以将任何应用程序注册成服务的软件
使用方法:
1、下载exe文件,假设改名成winsw.exe
2、同目录下创建一个同名的xml文件,如winsw.xml
其中参数自己看一下就可以了
<service>
<id>myApp</id>
<name>myApp</name>
<description>To start my app as a service.</description>
<executable>java</executable>
<arguments>-Xmx256m -jar c:\myApp.jar" --server.port=80</arguments>
<logmode>rotate</logmode>
</service>
3、使用cmd,用cd命令转到winsw.exe所在文件夹,然后执行命令
安装服务命令:winsw.exe install
卸载服务命令:winsw.exe uninstall
4、打开系统服务功能:运行——输入services.msc,即可看见自己命名的服务myApp
5、设置服务为自动,并启用即可