单机开机无感全自动进入B\S架构系统

单机开机无感全自动进入B\S架构系统

    • 标题:单机用jar包启动项目bat(批处理)不弹黑窗口,并设置开机自启,打开浏览器,访问系统。
      • 引言:在实际工作中,遇到单机部署的情况,如今我们微服务的架构如何在单机本上运行,并且让用户无感,自动进入网页系统,那应该怎么做?
      • 正文
        • 1:jar包启动服务,存在黑窗口,并自动进入系统(初始条件)
        • 2:开机自启动
        • 3:隐藏9个服务黑窗口
        • 4:隐藏启动bat的黑窗口
        • 知识扩展

标题:单机用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
单机开机无感全自动进入B\S架构系统_第1张图片

这样设置后,可实现效果,当点击10-batStart.bat之后,9个服务的黑窗口间隔20或者30秒依次开启,最终打开浏览器,进入系统的登录页。

2:开机自启动

使用windows+R,打开运行窗口,输入

shell:startup

打开如下文件夹,将10-batStart.bat拖进去
单机开机无感全自动进入B\S架构系统_第2张图片
可实现开机自启动服务,并打开浏览器进入系统。

单机开机无感全自动进入B\S架构系统_第3张图片
但是这样会存在以下问题,服务启动成功,但是黑窗口依旧存在,如果不小心关掉,那系统将会不可用。
单机开机无感全自动进入B\S架构系统_第4张图片

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发送快捷方式至桌面,并修改一个图标,
单机开机无感全自动进入B\S架构系统_第5张图片
这样双击桌面即可自动启动系统并且,隐藏掉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

单机开机无感全自动进入B\S架构系统_第6张图片
总结:这样完成之后,目录为以下列表,可实现电脑重启后,黑窗口一闪而过(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)。

你可能感兴趣的:(java,windows,微服务)