单机开机无感全自动进入B\S架构系统
标题:单机用jar包启动项目bat(批处理)不弹黑窗口,并设置开机自启,打开浏览器,访问系统。
引言:在实际工作中,遇到单机部署的情况,如今我们微服务的架构如何在单机本上运行,并且让用户无感,自动进入网页系统,那应该怎么做?
正文
1:jar包启动服务,存在黑窗口,并自动进入系统(初始条件)
因工作需要,现有以下场景,一套微服务的jar包需要在windows系统下运行,并且不采用docker的形式,现已投入到实际中使用,所以写下此篇文章供其他人使用及自己后续拿来参考。
本次部署的有注册中心 配置中心 用户中心 auth zuul web 附件中心 工作流 业务系统
对应有9个jar包,分别用9个bat命令处理
例:
01-eureka.bat
D:\xxx\xxx/jdk1.8.0_xx\bin\java -Xmx512m -jar eureka.jar
注释:这里表示使用jar命令启动jar包
02-config.bat
D:\xxx\xxx/jdk1.8.0_xx\bin\java -Xmx512m -jar config.jar
注释:这里表示使用jar命令启动jar包
以此类推,写完9个bat处理,因为各个服务启动直接的关系,需要间隔一段时间
所以9个bat脚本写完之后,可以写一个
10-batStart.bat
@echo off
start 01-eureka.bat
timeout /T 20 /NOBREAK
start 02-config.bat
timeout /T 30 /NOBREAK
....
"C:\Program Files\Mozilla Firefox\firefox"
@echo off表示执行了这条命令后关闭所有命令(包括本身这条命令)的回显。而echo off命令则表示关闭其他所有命令(不包括本身这条命令)的回显,@的作用就是关闭紧跟其后的一条命令的回显
注释:这里表示,关闭回显,启动刚刚提到的第一个bat脚本,启动eureka,等待20秒后,启动第二个脚本配置中心,等待30秒后,启动后续的脚本,依次启动完九个脚本后,打开浏览器。
之后,设置打开浏览器的初始页面,将其设置为系统的登录地址例如:localhost/login
这样设置后,可实现效果,当点击10-batStart.bat之后,9个服务的黑窗口间隔20或者30秒依次开启,最终打开浏览器,进入系统的登录页。
2:开机自启动
使用windows+R,打开运行窗口,输入
shell:startup
打开如下文件夹,将10-batStart.bat拖进去
可实现开机自启动服务,并打开浏览器进入系统。
但是这样会存在以下问题,服务启动成功,但是黑窗口依旧存在,如果不小心关掉,那系统将会不可用。
3:隐藏9个服务黑窗口
我们已经写好01-eureka.bat|02-config.bat…,接下来需要为这几个窗口隐藏掉,用到的脚本为vbs(Microsoft Visual Basic Script Edition 微软公司可视化BASIC脚本版)。
例:新建脚本
01-eureka.vbs
set ws = WScriot.CreateObject("Wscript.Shell")
ws.run "D:\xxx\xxx\01-eureka.bat",0
这样即可将01-eureka.bat启动的黑窗口隐藏掉。
02-config.vbs
set ws = WScriot.CreateObject("Wscript.Shell")
ws.run "D:\xxx\xxx\02-config.bat",0
这样即可将02-config.bat启动的黑窗口隐藏掉。
依次为9个bat的脚本写vbs脚本。
原本的10-batStart.bat留着,还有用(运维阶段使用)
新建11-vbsStart.bat
@echo off
chcp 65001
echo 系统启动中...& echo 系统启动成功后自动开启火狐浏览器 & 请勿关闭此窗口,系统启动成功后此窗口自动关闭。
d:
cd xxx\xxx(这里进入bat及vbs脚本所在文件夹)
cscript D:\xxx\xxx\01-eureka.vbs
timeout /T 20 /NOBREAK
cscript D:\xxx\xxx\02-config.vbs
timeout /T 20 /NOBREAK
.....
"C:\Program Files\Mozilla Firefox\firefox"
注释:chcp 65001 指的是UTF-8编码 d: 及cd xx\xx是进入到命令可执行的文件夹下,不然默认在CMD窗口默认C盘下,会执行失败。
启动eureka的vbs脚本,实际vbs脚本执行的就是bat,只不过隐藏了黑窗口。依次执行完9个服务,打开浏览器,进入系统。
可以将11-vbsStart.bat发送快捷方式至桌面,并修改一个图标,
这样双击桌面即可自动启动系统并且,隐藏掉9个服务的窗口,但是这样依旧有一个问题,就是当前的bat存在黑窗口。
4:隐藏启动bat的黑窗口
到了这一步,已经理解了上边内容的相信已经有了答案,那就是为11-vbsStart.bat写一个vbs脚本,并且再写一个开机启动的bat用来启动vbs。
11-vbsStart.vbs
set ws = WScriot.CreateObject("Wscript.Shell")
ws.run "D:\xxx\xxx\11-vbsStart.bat",0
开机去黑窗口自启动系统.bat
d:
cd xxx\xxx
cscript D:\xxx\xxx\11-vbxStart.vbs
windows+R
shell:startup
总结:这样完成之后,目录为以下列表,可实现电脑重启后,黑窗口一闪而过(0.1秒),大约等待2分钟后,自动开启浏览器,并进入系统页面。
01-eureka.bat
01-eureka.vbs
02-config.bat
02-config.vbs
03-user.bat
03-user.vbs
04-auth.bat
04-auth.vbs
05-zuul.bat
05-zuul.vbs
06-web.bat
06-web.vbs
07-atta.bat
07-atta.vbs
08-flow.bat
08-flow.vbs
09-project.bat
09-project.vbs
10-batStart.bat
10-batStart.vbs
11-vbsStart.bat
11-VbsStart.vbs
开机去黑窗口自启动系统.bat
知识扩展
批处理命令介绍。
1.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令。可以使用任何文本文件编辑工具创建和修改。
2.批处理是一种简单的程序,可以用 if 和 goto 来控制流程,也可以使用 for 循环。
3.批处理的编程能力远不如C语言等编程语言,也十分不规范。
4.每个编写好的批处理文件都相当于一个DOS的外部命令,把它所在的目录放到DOS搜索路径(path)中,即可在任意位置运行。5.C:\AUTOEXEC.BAT 是每次系统启动时都会自动运行的,可以将每次启动时都要运行的命令放入该文件中。
6.大小写不敏感(命令符忽略大小写)
7.批处理的文件扩展名为 .bat 或 .cmd。
8.在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe来运行该文件。
vbs命令介绍
VBS是基于Visual Basic的脚本语言。VBS的全称是:Microsoft Visual Basic Script Edition。(微软公司可视化BASIC脚本版)。
其语言类似Visual Basic(VB)。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!