Spring Boot项目生成jar包,并在windows服务器中注册成服务,开机启动

时间:2021-12-05 22:55:27

背景:

使用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、设置服务为自动,并启用即可