Windows 下 cmd 启动 java 程序及开机自启
启动脚本
假如有 java 应用程序:vita-admin.jar,有如下启动脚本:
java -jar 启动/停止
vita.bat 脚本中使用 java -jar 的方式启动,会弹出一个命令提示符黑窗口。
通过 vita.bat 脚本中内容的启动方式,需要手动键盘输入选择序号来执行对应的函数。
# 启动(vita-admin.jar 和 vita.bat 需要放在同一文件夹下。)
vita.bat
# 然后需要键盘输入序号:1启动,2关闭,3重启,4启动状态,5退出
# 比如输入 1,就是启动的意思。
关闭应用时,直接关闭命令提示符黑窗口即可。
javaw -jar 启动/停止
如果把 vita.bat 脚本中的 java -jar 修改为 javaw -jar,就可以后台启动程序。
javaw -jar vita-admin.jar 的方式启动程序,意为后台启动,即不会出现命令提示符的黑窗口。
其它步骤和 java -jar 的方式启动一模一样。
开机自启
由于通过 vita.bat 脚本内容启动的方式,需要手动选择序号来启动,这样就无法开机启动,并且如果是 javaw -jar 的方式,则无法通过黑窗口看实时启动和运行日志。
因此,这里我们改用 start.bat 来启动应用。
将程序 vita-admin.jar 和启动脚本 start.bat 放在同一目录,如:
D:\work\vita-admin.jar
D:\work\start.bat
创建 start.bat 的快捷方式(比如:vita_start.bat - 快捷方式),复制到 Windows 的启动目录下:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
# 中文路径为:
C:\ProgramData\Microsoft\Windows\「开始」菜单\程序\启动
# 比如:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\vita_start.bat - 快捷方式
之后,只要重启操作系统,就可以自动打开命令提示符窗口,启动应用。
最小化窗口
这时候虽然启动了,但会有一个命令提示符黑窗口出现在屏幕中央。
我们希望启动的时候,可以默认自动最小化命令提示符黑窗口。
参考这个文档即可实现:cmd 最小化窗口运行
延迟启动及启动顺序
如果一套应用的启动,需要严格控制启动顺序,可以通过以下方式简单控制。
假如有如下启动脚本,并且 redis 需要先于 vita 应用启动:
D:\work\redis_start.bat
D:\work\vita_start.bat
D:\work\all.bat
我们可以新增加一个 all.bat 脚本:
@echo off
title=Start-All
@rem /min: 启动时以最小化窗口的方式。
echo Redis Starting.....
start /min redis_start.bat
@rem 延时启动。这里延时时 30 秒开始启动应用。>nul 意思是不显示过程。
@rem 符号【>nul】等同于【1>nul】,是屏蔽操作成功显示的信息,但是出错还是会显示
@rem 符号【2>nul】是屏蔽操作失败显示的信息,如果成功依旧显示。
timeout /T 30 /NOBREAK >nul
@rem 如果不加 >nul 的话,命令如下:
@rem 此时命令提示符窗口会显示:等待 n 秒,按 CTRL+C 退出......
@rem 其中 n 是倒计时的秒数,会一直减一动态变化。
@rem 如果不想显示倒计时这个过程,就加上 >nul
echo 启动倒计时:
timeout /T 30 /NOBREAK
echo Vita Starting.....
start /min vita_start.bat
关于 call 和 start 命令
call 和 start 命令都可以在一个 a.bat 中调用另一个 b.bat 脚本,但也有一些不同。
- call: 通过 call 命令,我们可以调用另一个 bat 文件,执行完会再返回到原本的 bat 文件中继续执行。
- start: 假如我们希望另外启动一个新的 cmd 窗口来运行 b.bat,可以通过 start 命令来实现