当使用 IntelliJ IDEA 开发 Java 应用(如 Spring Boot 项目)时,常常会遇到这样的问题:IDEA 被强制关闭或崩溃,而应用服务未正常终止,导致端口(例如默认的 8080)仍然被占用。当你再次启动项目时,就会报错:
java.net.BindException: Address already in use: bind
这意味着 8080 端口已经被某个进程占用了。
Ctrl + Shift + Esc
直接打开【任务管理器】;java.exe
或 javaw.exe
的进程;⚠️ 注意:如果你正在运行多个 Java 程序(如多个 IDEA 窗口、Tomcat、或其他 IDE),请确认哪个是你要结束的进程,避免误杀其他程序。
netstat -ano | findstr :8080
输出示例:
TCP 127.0.0.1:8080 0.0.0.0:0 LISTENING 12345
其中 12345
是进程 ID(PID)。
然后查找该 PID 对应的进程名:
tasklist | findstr 12345
再根据结果判断是否要结束该进程:
taskkill /F /PID 12345
lsof -i :8080
或者:
netstat -tulnp | grep :8080
kill -9 <PID>
方法 | 说明 | 适用场景 | 推荐指数 |
---|---|---|---|
重启电脑 | 最直接有效 | 多个程序冲突或复杂环境 | ★★☆☆☆ |
任务管理器杀 Java 进程 | 快速定位并处理 | Windows 单一 Java 应用 | ★★★★☆ |
命令行查询 PID 并 kill | 更精确控制 | 熟悉命令的开发者 | ★★★★★ |
修改 server.port | 避免冲突 | 多个项目同时运行 | ★★★★☆ |
使用 DevTools 热部署 | 减少重启次数 | 开发阶段提升效率 | ★★★★☆ |
如有需要,我也可以为你写一个自动化脚本,一键检测并杀掉占用 8080 的 Java 进程。欢迎继续提问!