当前位置: 首页 > 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程序,端口占用解除,启动成功。
在这里插入图片描述

http://www.lryc.cn/news/542918.html

相关文章:

  • deepseek清华大学第二版 如何获取 DeepSeek如何赋能职场应用 PDF文档 电子档(附下载)
  • 【python随手记】——读取文本文件内容转换为json格式
  • k8s集群3主5从高可用架构(kubeadm方式安装k8s)
  • 基于 sklearn 的均值偏移聚类算法的应用
  • 三、大模型微调的多种方法与应用场景
  • 第2课 树莓派镜像的烧录
  • SQL之order by盲注
  • AI大模型(四)基于Deepseek本地部署实现模型定制与调教
  • java后端开发day19--学生管理系统升级
  • MFC文件和注册表的操作
  • vscode如何使用鼠标滚轮调整字体大小
  • C++之vector和list辨析
  • 冯诺依曼体系结构 ──── linux第8课
  • EX_25/2/22
  • rust安装教程以及git连接到远程仓库
  • Kafka系列之:记录一次源头数据库刷数据,造成数据丢失的原因
  • VC++零基础入门之系列教程 【附录E MFC快速参考指南】
  • 在CentOS 7下部署NFS的详细教程
  • LabVIEW C编译支持工具库CCompileSupp.llb
  • 【含文档+PPT+源码】基于微信小程序的农产品自主供销商城系统
  • MongoDB私人学习笔记
  • C++---了解STL
  • 智能自动化新纪元:AI与UiPath RPA的协同应用场景与技术实践
  • 2025年2月科技热点深度解析:AI竞赛、量子突破与开源革命
  • 计算机网络————(三)
  • 请谈谈 React 中的状态管理,如何使用 Context API 和 Redux 进行状态管理?
  • 【考研】复试相关上机题目
  • 利用机器学习实现实时交易欺诈检测
  • Modelfile配置说明
  • labview实现有符号位16进制转二进制补码转真值