使用bat命令在没有java的环境下启动jar包
先看一下目录下面的文件
里面有三个比较重要的文件
clean.bat
:用于清除占用程序的端口
一键启动_x64.bat
:用于启动全部的项目
jre8_win64
:用于jar所需要的java环境注意事项:
- 关于jar包名字,jar包的名字可以随意,只需要把jar包扔进目录下面即可
- 关于jar包大小,需要打胖包,就是各个依赖集合到一起,比较大的jar包
- 关于环境的名字
jre8_win64
,不可另重名,如果另重名了,需要改动一键启动_x64.bat
的代码
那么我们就来看看两个bat
文件里面到底有什么
一键启动_x64.bat
:: @echo off表示执行了这条命令后关闭所有命令(包括本身这条命令)的回显
@echo off
:: %~dp0 是当前的目录
:: 这里就是执行本地的清端口
start %~dp0\clean.bat
:: 等五秒 等清除程序跑完
timeout /t 5 /nobreak
:: cmd到本目录
cd /d %~dp0
:: 设置java环境的目录
set JRE_HOME=%~dp0\jre8_win64
:: 设置java环境
set PATH=%JRE_HOME%\bin;%PATH%
:: 启动一个exe程序,我在这里注掉了
:: 需要的同学去掉 :: 这个注解即可
:: start %~dp0\test\DEMO.exe
:: 循环遍历本目录下的jar包
:: 启用新的cmd窗口执行java程序
:: cmd窗口的名字就是jar包的名字
for %%i in (*.jar) do (
echo Starting %%i
start cmd /c "title %%~ni && java -jar %%i"
)
:: 退出,关闭cmd页面
exit
:: 下面这个是等待,不关闭cmd页面
:: @pause
clean.bat
:: 解决乱码
chcp 65001
@echo off
:: 延迟变量
setlocal enabledelayedexpansion
:: 设置需要删除的端口列表,用空格分隔
set ports=50008 50012 22080
:: 用于自己输入需要删除的端口号
:: set /p ports=设置需要删除的端口列表,用空格分隔:
:: 循环遍历端口列表并删除它们
for %%p in (%ports%) do (
echo 正在查找占用端口号 %%p 的程序...
for /f "tokens=5" %%i in ('netstat -a -n -o ^| findstr ":%%p"') do (
if "%%i"=="" (
echo 端口号 %%p 没有被占用!
) else (
echo 发现占用端口号 %%p 的程序,pid 为 %%i。
echo 正在尝试关闭该程序...
taskkill /f /pid %%i
echo 程序已关闭,端口号 %%p 已经释放!
)
)
)
:: 退出,关闭cmd页面
exit
jar包自己找哦
需要环境的同学,我把链接放这了链接: 链接 提取码: 7hwz,既然看到这里了,希望点一点小红心吧,小编更有动力创作呢