首页 > Java > java教程 > 正文

Spring Boot 应用启动失败:端口占用问题的排查与解决

心靈之曲
发布: 2025-09-19 23:08:01
原创
333人浏览过

Spring Boot 应用启动失败:端口占用问题的排查与解决

本教程旨在解决Spring Boot应用在IntelliJ IDEA中启动时遇到的“端口8080已被占用”错误。文章将深入分析该问题常见原因,重点讲解如何利用IntelliJ IDEA的服务视图排查并终止残留进程,以及通过修改application.properties文件更改应用端口,确保应用顺利启动。

理解“端口占用”错误

当您在intellij idea中启动一个spring boot应用程序时,如果遇到以下错误信息:

***************************
APPLICATION FAILED TO START
***************************

Description:

Web server failed to start. Port 8080 was already in use.

Action:

Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.


Process finished with exit code 1
登录后复制

这表明您的Spring Boot应用尝试监听的端口(默认为8080)已经被系统上的另一个进程占用。尽管操作系统级别的工具(如 lsof -i :8080)有时可能无法立即显示占用该端口的进程,但在开发环境中,尤其是使用集成开发环境(IDE)如IntelliJ IDEA时,最常见的原因往往是应用程序的上一个实例未能完全终止,其进程仍在后台运行。

排查与解决策略

解决端口占用问题通常有以下几种有效策略。

1. 检查 IntelliJ IDEA 的服务视图

这是在IntelliJ IDEA中遇到此问题时最直接、最常见的原因及解决方案。IntelliJ IDEA有一个强大的“Services”工具窗口,它会显示当前正在运行或最近运行的应用程序实例及其日志。

操作步骤:

  1. 打开IntelliJ IDEA。
  2. 在屏幕底部或侧边栏找到并点击“Services”工具窗口(通常是一个形似“播放”按钮的图标)。
  3. 在“Services”视图中,查找您的Spring Boot应用程序的实例。您可能会看到一个或多个正在运行或处于“已停止”但未完全清理状态的实例。
  4. 如果发现有正在运行的相同应用程序实例,选中它。
  5. 点击工具栏上的“Stop”按钮(红色方块图标)来终止该进程。
  6. 确认进程已完全停止后,尝试重新启动您的Spring Boot应用程序。

通常,这种方法能解决大部分由IDE内残留进程引起的端口占用问题。

2. 修改应用程序的监听端口

如果无法找到或终止占用端口的进程,或者您希望您的应用程序在不同的端口上运行,可以通过修改Spring Boot的配置来更改监听端口。

操作步骤:

  1. 打开您的Spring Boot项目的 src/main/resources 目录下的 application.properties 或 application.yml 文件。

  2. 在文件中添加或修改 server.port 属性。

    对于 application.properties:

    AppMall应用商店
    AppMall应用商店

    AI应用商店,提供即时交付、按需付费的人工智能应用服务

    AppMall应用商店 56
    查看详情 AppMall应用商店
    server.port=8089
    登录后复制

    对于 application.yml:

    server:
      port: 8089
    登录后复制

    这里,我们将端口更改为8089。您可以选择任何未被占用的端口(例如8081、9000等)。

  3. 保存文件。

  4. 重新启动您的Spring Boot应用程序。

注意事项: 更改端口后,访问应用程序的URL时需要使用新的端口号,例如 http://localhost:8089。

3. 手动识别并终止外部进程

如果上述方法无效,或者您怀疑是IntelliJ IDEA外部的某个进程占用了端口,您需要使用操作系统工具来识别并终止它。

操作步骤:

  1. 识别占用端口的进程ID (PID):
    • Linux/macOS: 打开终端,运行 sudo lsof -i :8080 或 sudo netstat -tulnp | grep 8080。lsof 命令通常更详细,会显示进程名称和PID。
    • Windows: 打开命令提示符(以管理员身份运行),运行 netstat -ano | findstr :8080。这会显示占用8080端口的TCP连接及其对应的PID。
  2. 终止进程:
    • Linux/macOS: 获得PID后,运行 kill -9 <PID>。例如,如果PID是12345,则运行 kill -9 12345。
    • Windows: 获得PID后,打开任务管理器,切换到“详细信息”选项卡,找到对应的PID,右键点击并选择“结束任务”。或者在命令提示符中运行 taskkill /F /PID <PID>。

警告: 在终止任何进程之前,请务必确认该进程不是关键的系统服务或其他重要应用程序。

总结

当Spring Boot应用在IntelliJ IDEA中启动时遇到“端口占用”错误,首要的排查步骤是检查IntelliJ IDEA的“Services”工具窗口,终止任何残留的应用程序实例。如果问题依然存在,或希望使用不同端口,修改 application.properties 中的 server.port 属性是简单有效的解决方案。在极端情况下,才需要诉诸操作系统级别的命令来识别和终止占用端口的外部进程。通过这些方法,您可以有效地解决Spring Boot应用启动时的端口冲突问题,确保开发流程的顺畅。

以上就是Spring Boot 应用启动失败:端口占用问题的排查与解决的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号