当前位置: 首页 > news >正文

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

c7faecb0adfd50e1b5f466d1834e53a4

以下是一个完整的 Windows 批处理脚本,用于检查指定端口是否被占用,并根据结果选择是否启动 Tomcat。如果端口被占用,还可以选择结束占用端口的进程,再启动 Tomcat。


批处理脚本代码

batch
 
@echo off
:: 设置需要检查的端口号
set PORT=8080:: 设置 Tomcat 的路径(根据你的实际路径修改)
set TOMCAT_HOME=C:\path\to\tomcat:: 输出分隔线
echo =======================================
echo 检查端口 %PORT% 是否被占用...
echo =======================================:: 检查端口是否被占用
netstat -ano | findstr ":%PORT%" > nul
if %errorlevel% equ 0 (echo 端口 %PORT% 已被占用。:: 获取占用端口的进程 IDfor /f "tokens=5" %%a in ('netstat -ano ^| findstr ":%PORT%"') do (set PID=%%a):: 显示占用端口的进程信息echo 占用端口 %PORT% 的进程 ID 为:%PID%for /f "tokens=1,2 delims=," %%a in ('tasklist /FI "PID eq %PID%" /FO CSV /NH') do (set PROCESS_NAME=%%~a)echo 占用端口的进程为:%PROCESS_NAME%:: 提示用户是否结束占用端口的进程set /p CHOICE=是否结束占用端口的进程(Y/N)?:if /i "%CHOICE%" equ "Y" (echo 正在结束进程 %PID% (%PROCESS_NAME%)...taskkill /PID %PID% /Fif %errorlevel% equ 0 (echo 成功结束进程 %PID%!) else (echo 无法结束进程,请检查权限。pauseexit /b 1)) else (echo 请手动释放端口后重试。pauseexit /b 1)
) else (echo 端口 %PORT% 未被占用。
):: 启动 Tomcat
echo =======================================
echo 正在启动 Tomcat...
cd /d "%TOMCAT_HOME%\bin"
call startup.bat:: 检测是否启动成功
timeout 5 > nul
echo =======================================
echo 检查 Tomcat 是否已启动...
netstat -ano | findstr ":%PORT%" > nul
if %errorlevel% equ 0 (echo Tomcat 已成功启动,端口 %PORT% 正在监听。
) else (echo Tomcat 启动失败,请检查日志。
)pause
exit

脚本功能说明

  1. 检查端口是否被占用

    • 通过 netstat -ano | findstr ":%PORT%" 检查是否有进程占用了指定端口 %PORT%
    • 如果端口被占用,提取进程 ID(PID),并显示占用端口的进程名。
  2. 终止占用端口的进程(可选)

    • 提示用户是否结束占用端口的进程。
    • 如果用户选择 Y,脚本会使用 taskkill /PID %PID% /F 强制终止进程。
  3. 启动 Tomcat

    • 切换到 %TOMCAT_HOME%\bin 目录,调用 startup.bat 启动 Tomcat。
  4. 检查 Tomcat 是否启动成功

    • 启动后等待 5 秒,检查端口是否被监听,判断 Tomcat 是否启动成功。

使用方法

  1. 配置端口号和 Tomcat 路径

    • 修改 set PORT=8080 为你配置的 Tomcat 端口号(通常是 8080)。
    • 修改 set TOMCAT_HOME=C:\path\to\tomcat 为你的 Tomcat 安装路径。
  2. 保存脚本

    • 将上述代码保存为 .bat 文件,例如 start_tomcat.bat
  3. 以管理员权限运行

    • 如果需要终止占用端口的进程,右键点击脚本,选择“以管理员身份运行”。

运行示例

1. 端口未被占用

plaintext
 
=======================================
检查端口 8080 是否被占用...
=======================================
端口 8080 未被占用。
=======================================
正在启动 Tomcat...
=======================================
检查 Tomcat 是否已启动...
Tomcat 已成功启动,端口 8080 正在监听。

2. 端口被占用,选择终止进程

plaintext
 
=======================================
检查端口 8080 是否被占用...
=======================================
端口 8080 已被占用。
占用端口 8080 的进程 ID 为:1234
占用端口的进程为:java.exe
是否结束占用端口的进程(Y/N)?: Y
正在结束进程 1234 (java.exe)...
成功结束进程 1234!
=======================================
正在启动 Tomcat...
=======================================
检查 Tomcat 是否已启动...
Tomcat 已成功启动,端口 8080 正在监听。

3. 端口被占用,选择不终止进程

plaintext
 
=======================================
检查端口 8080 是否被占用...
=======================================
端口 8080 已被占用。
占用端口 8080 的进程 ID 为:1234
占用端口的进程为:java.exe
是否结束占用端口的进程(Y/N)?: N
请手动释放端口后重试。

注意事项

  1. 管理员权限

    • 如果需要终止进程,必须以管理员权限运行脚本。
  2. Tomcat 路径

    • 确保 TOMCAT_HOME 设置正确,特别是 bin 目录下必须有 startup.bat
  3. 端口冲突

    • 如果 Tomcat 启动失败,请检查 server.xml 中的 <Connector port="8080" ... /> 配置,确认没有其他服务占用相同端口。
  4. 兼容性

    • 适用于 Windows 系统(Windows 7, 8, 10, 11 或 Windows Server 系列)。

通过此脚本,企业和开发者可以轻松实现 Tomcat 的自动化管理和端口冲突检查,大幅提高效率并减少手动操作的出错率!

http://www.jsqmd.com/news/36784/

相关文章:

  • 2025最新实测对比:5款热门工程项目管理系统 协同能力与实用体验深度测评
  • 2025年双轴拌馅机实力厂家权威推荐榜单:调味料拌馅机/酱菜搅拌机/翻斗式拌馅机源头厂家精选
  • 2025年终绩效,AI面谈系统让沟通效率翻倍,主管再也不用熬夜写总结
  • vue实现T型二维表格
  • antd table 列表树形结构展示
  • 2025年深圳救护车运转公司权威推荐榜单:正规救护车出租/急救车出租/出租救护车源头公司精选
  • 对隐式类型转换保持警觉
  • es中批量删除数据
  • docker安装mysql/Redis/nacos/minio/es/xxl-job
  • 低代码高价值场景:让设备管理真正成为企业数字化资产
  • re-BABYRE-攻防世界
  • 二维数组去重
  • Pinely Round 5 (Div. 1 + Div. 2) A-D细解
  • 2025年三相滤波器源头厂家权威推荐榜单:EMI电源滤波器/防雷滤波器/电源滤波器源头厂家精选
  • UT010029: Stream is closed
  • 官宣上线!RocketMQ for AI:企业级 AI 应用异步通信首选方案
  • GD32VW553-IOT V2 测评和移植 - 实践
  • 什么是 FFmpeg:开源免费的多媒体处理框架 - 实践
  • AI元人文宪章:在缺陷中前行——价值权衡时代的协作体系
  • 2025年台湾铨盛仪表公司口碑推荐榜
  • 2025年靠谱的藤椒火锅底料口碑推荐榜单
  • 2025年离心管道风机定制厂家推荐排行榜
  • zed odoo lsp配置
  • Raylib 音乐和音效
  • oh-my-zsh又双叒叕出问题了......
  • 读书笔记:并行 DML:批量数据修改的“超级加速器”
  • 2025年镀锌钢格板品牌推荐排行榜单
  • 低代码高频实践场景系列之一——EHS系统
  • 高端UI设计公司的“审美模型”:如何让界面更有记忆点?
  • 2025年提分系统系统怎么选