插件窝 干货文章 Windows利用批处理脚本判断端口, 启动tomcat

Windows利用批处理脚本判断端口, 启动tomcat

Tomcat 端口 启动 占用 365    来源:    2025-05-11

Windows批处理脚本:判断端口并启动Tomcat

以下是一个Windows批处理脚本,它可以检查指定端口是否被占用,如果未被占用则启动Tomcat服务器:

@echo off
setlocal enabledelayedexpansion

:: 配置参数
set TOMCAT_HOME=D:\apache-tomcat-9.0.50
set TOMCAT_PORT=8080
set TIMEOUT=30

:: 检查端口是否被占用
echo 正在检查端口 %TOMCAT_PORT% 是否可用...
netstat -ano | findstr ":%TOMCAT_PORT%" > nul

if %errorlevel% equ 0 (
    echo 错误:端口 %TOMCAT_PORT% 已被占用!
    for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":%TOMCAT_PORT%"') do (
        set pid=%%a
        echo 占用进程PID: !pid!
        tasklist | findstr "!pid!"
    )
    pause
    exit /b 1
) else (
    echo 端口 %TOMCAT_PORT% 可用,准备启动Tomcat...
)

:: 启动Tomcat
echo 正在启动Tomcat...
call "%TOMCAT_HOME%\bin\startup.bat"

:: 等待Tomcat启动
echo 等待Tomcat启动(最多等待 %TIMEOUT% 秒)...
set /a counter=0

:wait_loop
timeout /t 1 > nul
netstat -ano | findstr ":%TOMCAT_PORT%" > nul
if %errorlevel% equ 1 (
    set /a counter+=1
    if !counter! lss %TIMEOUT% (
        echo 等待Tomcat启动(!counter!/%TIMEOUT%)...
        goto wait_loop
    ) else (
        echo 错误:Tomcat在%TIMEOUT%秒内未能成功启动!
        pause
        exit /b 1
    )
)

echo Tomcat已成功启动!
echo 访问地址: http://localhost:%TOMCAT_PORT%/
pause

使用说明

  1. 配置参数

    • TOMCAT_HOME:修改为你的Tomcat安装目录
    • TOMCAT_PORT:修改为你Tomcat使用的端口号(默认8080)
    • TIMEOUT:设置等待Tomcat启动的最大秒数
  2. 功能说明

    • 检查指定端口是否被占用
    • 如果被占用,显示占用进程的PID和详细信息
    • 如果端口可用,启动Tomcat
    • 监控Tomcat启动过程,直到端口被监听或超时
  3. 使用方法

    • 将脚本保存为.bat文件(如start_tomcat.bat
    • 双击运行或通过命令行执行

高级功能扩展

如果需要更复杂的功能,可以考虑以下改进:

  1. 自动杀死占用端口的进程(谨慎使用):
:: 在检查端口被占用的部分添加
set /p kill=端口被占用,是否要终止该进程(Y/N)?
if /i "!kill!"=="Y" (
    taskkill /F /PID !pid!
    echo 已终止进程 !pid!
    timeout /t 2 > nul
    goto :start_tomcat
)
  1. 多Tomcat实例管理: 可以修改脚本使其接受命令行参数,从而管理多个Tomcat实例。

  2. 日志记录: 将启动过程和结果记录到日志文件中便于后续排查问题。