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

IDEA关闭SpringBoot程序后仍然占用端口的排查与解决

IDEA关闭SpringBoot程序后仍然占用端口的排查与解决

问题描述
在使用 IntelliJ IDEA 开发 Spring Boot 应用时,有时即使关闭了应用,程序仍然占用端口(例如:4001 端口)。这会导致重新启动应用时出现端口被占用的错误,在windows系统下有时候执行命令netstat -ano | findstr "4001"也无法找到被占用的端口,本文将详细描述如何解决此问题。


1 问题复现

启动springboot应用后,提示端口已经被占用
在这里插入图片描述

2 排查步骤

1 确认端口占用情况
使用以下命令检查哪个进程占用了目标端口:

netstat -ano | findstr :<端口号>

示例:检查 4001 端口是否被占用。

netstat -ano | findstr :4001

正常端口被占用情况下,会显示如下,画框部分13036为应用程序PID
在这里插入图片描述

2 找到占用端口的进程 ID
在win11下可以直接使用任务管理器搜索PID找到占用端口的程序,例如搜索到4001端口被QQ占用

在这里插入图片描述

或者cmd命令框输入如下命令查找

tasklist | findstr "13036"

在这里插入图片描述

3 终止占用端口的进程
直接任务管理器关闭程序
在这里插入图片描述

使用以下命令强制终止该进程:

taskkill /PID <PID> /F

示例:

taskkill /PID 13036 /F

注意:极端情况下,idea运行spirngboot程序时,由于强制关闭或者其他原因,造成java程序没有彻底释放,还在后台运行,导致原java程序始终占用着端口,具体表现为:

启动后端口任被占用在这里插入图片描述 查找被占用的4001端口时,显示空白找不到在这里插入图片描述

  • 解决方法:
    1. 检查是否有残留的 Java 进程:
      tasklist | findstr java
      
    2. 如果发现多余的 Java 进程,强制结束它:
      taskkill /f /pid <PID>
      

在这里插入图片描述

示例:强制删除多余的java线程。

netstat -ano | findstr :22084
netstat -ano | findstr :22320

删除完毕后,重新启动springboot程序,端口占用解除,启动成功。
在这里插入图片描述

相关文章:

  • 【Linux】Ubuntu服务器的安装和配置管理
  • 在线VS离线TTS(语音合成芯片)有哪些优势-AIOT智能语音产品方案
  • Unity打包APK报错 using a newer Android Gradle plugin to use compileSdk = 35
  • 系统基础与管理(2025更新中)
  • 大语言模型中的梯度值:深入理解与应用
  • android s下make otapackage编译失败
  • Linux:互斥
  • 算法与数据结构(格雷编码)
  • Node.js 中 fs 模块的高级用法
  • 基于 Spring Boot 的高校网上缴费综合务系统设计与实现
  • C# 封装
  • WIFI的SSID超长,隐藏,重复 (2.4G和5G差异)
  • DeepSeek 提示词:基础结构
  • java给钉钉邮箱发送邮件
  • stm32仿真 74hc238流水灯 数码管动态数字显示
  • 快速入门——前端数据模拟MockJS
  • java后端开发day19--学生管理系统升级
  • TypeError: the JSON object must be str, bytes or bytearray, not dict
  • LLM全栈框架完整分类清单(预训练+微调+工具链)
  • VMware中的linux常用指令
  • 家庭医生可提前5天预约三甲医院号源,上海常住人口签约率达45%,
  • 圆桌丨全球化博弈与人工智能背景下,企业如何落地合规体系
  • 学者三年实地调查被判AI代笔,论文AI率检测如何避免“误伤”
  • 俄乌代表团抵达谈判会场
  • 师爷、文士、畸人:会稽范啸风及其著述
  • 雷军内部演讲回应质疑:在不服输、打不倒方面,没人比我们更有耐心