用途:使用 Spring Boot 开发的 Web 项目,打包生成了一个 jar 包,部署在 Windows 服务器中,设置为开机启动spring boot 生成的 jar 包,直接用 java -jar 运行,但是前提是需要登陆用户,并且注销用户后退出进程,所有不可用
写一个 bat 处理文档,里面写 Java -jar 运行进程,然后把 bat 文档作为一个任务计划与逆行;如果可能是因为任务启动时,系统资源没准备好,可能失败。
最佳方案:使用 winsw,是一个开源项目,可以将任何应用进程注册成服务的软件
步骤:将 Git Hub 中下载的 WinSW.NET4.exe 和 sample-minimal.xml 文档及 springboot 项目的 jar 包放在同一个文档夹中将 winsw 执行进程和 xml 改为同样的名字,推荐使用项目名 +service 的命令方式。
编辑 helloworldService.xml 文档,内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
myProjectServiceID
myProjectServiceName
此处可填写该服务的描述
java
-Xmx256m -jar myProject.jar
rotate
运行 – 输入 cmd,注意,要以管理员身份运行 ,然后进入到 myProjectService.exe 所在的文档夹,运行:myProjectService.exe install。cmd 输入命令: net start myProjectServiceName 启动服务运行 – 输入 services.msc,可以查看注册的服务 :myProjectServiceName测试:重启电脑后该服务自动启动,执行第六步可以检查是否成功删除服务器分为两布:1.停止服务 2 删除服务 都在命令行接口实现
net stop myProjectServiceiName 停止运行服务
myProjectService.exe uninstall 可删除服务
可以将上述命令写道批处理文档中,部署的时候实现一键部署
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
例如myProjectStart.bat内容如下:
cd /d %~dp0
helloworldService.exe install
net start helloworld
cmd
例如myProjectStop.bat内容如下:
cd /d %~dp0 %代替”cd D:XX,统一文档起始目录为当前目录%
net stop helloworld
helloworldService.exe uninstall
cmd %cmd命令窗口不关闭%
如果没有成功可以查看日志找原因,日志文档在同级目录:
需要注意如果用户没有安装 jdk,需要进行安装并配置环境变量
执行 helloworld.exe install 报错WMI.WmiException: AccessDenied
打开 cmd 的时候,以管理员的身份运行。>windows10系统的搜索框中直接输入命令cmd,结果中鼠标右键,选择管理员身份运行。
转载: