背景:
使用 Spring Boot 开发的 web 项目, 打包生成了一个 jar 包, 希望能部署在 Windows 服务器中
尝试:
1Spring 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 所在文件夹, 然后执行命令
安装服务命令: MyApp.exe install
卸载服务命令: MyApp.exe uninstall
4 打开系统服务功能: 运行输入 services.msc, 即可看见自己命名的服务 myApp
5 设置服务为自动, 并启用即可
来源: http://www.bubuko.com/infodetail-2544868.html