一、引言
今天本来是空闲摸鱼的一天~
客户群里疯狂@我,服务怎么访问不了。心想怎么可能会有bug,上周五刚测试完。
怀着心惊胆战上服务器一看日志,原来是服务器重启导致jar包没启动了~
二、实现方式
bat脚本来实现批处理,放到windows开机目录下,就可以实现jar包开机自启动。
三、实践
a.单个Jar包服务
1.在jar包目录新建一个start.bat 文件,然后写入启动命令
1 | jar -jar XXXX.jar |
2.仍然在此目录,新建start.vbs 文件,然后写入一下命令,命令最后一个0是隐藏窗口运行
1 |
|
3.创建run.vbs的快捷方式,移动到开机自启动目录下:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
重启就好了~
b.多个Jar包服务(比如SpringCloud)
只需要更改.bat文件里面的命令即可~
列如:
@echo off
start java -jar C:\Users\Lenovo\Desktop\fsdownload\registry.jar
TIMEOUT /T 40
start java -jar C:\Users\Lenovo\Desktop\fsdownload\auth.jar
TIMEOUT /T 40
start java -jar C:\Users\Lenovo\Desktop\fsdownload\gate-way.jar
TIMEOUT /T 40
start java -jar C:\Users\Lenovo\Desktop\fsdownload\chart-visual.jar
pause
命令解释:
TIMEOUT /T 40 等待40秒
start java -jar C:\Users\Lenovo\Desktop\fsdownload\registry.jar
启动指定jar包
pause
拦截窗口自动关闭
JAR包CMD窗口后台运行和打印日志:
start javaw -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m -jar C:\Users\Lenovo\Desktop\fsdownload\registry.jar >> registry.log 2>&1