如果中文路径乱码,文件另存为保存为ANSI则可以。
设置参考
port
: 如果你使用其他端口,需要将其替换为你要使用的端口号。java_exe
: 如果你的 Java 可执行文件不在C:\Program Files\Java\jdk-11.0.2\bin\java.exe
这个路径下,请将其替换为实际的路径。jar_path
: 如果admin.jar
不在批处理脚本的同一目录下,请将其替换为实际的路径
脚本1
以下是一个修改后的脚本,可以在运行 Java 项目时关闭当前窗口
admin.jar 为执行java名称
不指定java版本
@echo off
setlocal enabledelayedexpansion
set port=8080
set jar_path=%~dp0admin.jar
:: Check if the port is already in use
for /f "tokens=5" %%a in ('netstat -ano ^| findstr :%port%') do (
taskkill /f /pid %%a >nul
)
:: Start the Java project and display output in a new window
start cmd /c java -jar "%jar_path%"
exit
这里将启动 Java 项目的命令中的 cmd /k
改为了 cmd /c
,这样在项目运行结束后会自动关闭当前窗口。
另外,如果你想要让脚本执行完毕后等待一段时间再自动关闭窗口,可以在最后加上 ping -n 3 127.0.0.1 > nul
,其中 3
表示等待的秒数
脚本2
以下是一个修改后的脚本,可以在当前文件夹下查找并启动任何以
.jar
结尾的文件
@echo off
setlocal enabledelayedexpansion
set port=8080
set jar_path=
:: Search for .jar files in current directory
for %%i in (*.jar) do (
set jar_path=%%i
goto found_jar
)
:found_jar
if not defined jar_path (
echo No .jar file found in current directory!
pause
exit
)
:: Check if the port is already in use
for /f "tokens=5" %%a in ('netstat -ano ^| findstr :%port%') do (
taskkill /f /pid %%a >nul
)
:: Start the Java project and display output in a new window
start cmd /c java -jar "%jar_path%"
exit
这里使用 for
命令遍历当前目录下所有以 .jar
结尾的文件,将第一个找到的文件名赋值给 jar_path
变量。如果没有找到任何 .jar
文件,则会输出一条错误信息并等待用户按下任意键退出。然后,脚本会检查 8080 端口是否被占用,并启动找到的 .jar
文件。
脚本3
如果在脚本中使用
start
命令来启动新的cmd窗口,那么要想在新打开的cmd窗口中设置标题,需要在start
命令之前先加上title
命令,例如:添加cloud-dev
@echo off
setlocal enabledelayedexpansion
set port=8080
set jar_path=
:: Search for .jar files in current directory
for %%i in (*.jar) do (
set jar_path=%%i
goto found_jar
)
:found_jar
if not defined jar_path (
echo No .jar file found in current directory!
pause
exit
)
:: Check if the port is already in use
for /f "tokens=5" %%a in ('netstat -ano ^| findstr :%port%') do (
taskkill /f /pid %%a >nul
)
:: Start the Java project and display output in a new window with custom title
start "cloud-dev" cmd /c java -jar "%jar_path%" --spring.profiles.active=dev
exit