解决idea spring-boot运用停止重新启动后端口被占用的另一种思路

背景

记得1年前,当升级完idea社区版后,当重新关闭spring-boot运用后,再开启,就会出现如下错误:

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

Description:

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

Action:

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

弄了半天设置,也没解决,当时以为是idea设的坑,故意不让用新的社区版了。从网上检索到的解决方案大多如下(我是在windows下开发的):

netstat -aon | findstr 20030
taskkill /PID [上面列出的进程号] /T /F

上述解决方案很麻烦。索性改用vscode进行代码调试了。最近在新的电脑里用最新版idea建新的spring-boot工程,启停spring-boot运用无上述错误,看来不是idea的问题。

解决方案描述

  • 首先想到是否升级idea可解决,但问题存在
  • 难道是工程组织的问题,遂经过对比和摸索,解决了困扰自己很久的问题。现在在idea里启停服务已经很正常了,下面列出解决步骤:

1)先将运用module从project里删除,同时将project从idea的project列表里删除,在一个新的空目录里新建一个project;
2)再依次将各运用的module导入进新的project里,此时再启停运用就无端口占用问题

分析原因

当时出问题的project是在一个运用目录里建的,也就是project的文件目录.idea和运用module的文件混在一起,导致idea判断错误。一般我们开发java运用,尤其是微服务,会在一个project引入多个module。将项目project文件和运用module的文件分开,这种端口被占用的问题就没出现了。 假设你的代码在目录workspace下,应该这样来组织代码

workspace
├─prj-1                            				  项目目录,在.idea目录存项目信息
    ├─ .idea                                            
├─spring-boot-app-1                               运用1目录
└─spring-boot-app-2                               运用2目录

总结:问题解决看来就这么简单,继续用起idea 😃

### 解决IntelliJ IDEA项目启动时端口占用的问题 当遇到IntelliJ IDEA项目启动时端口已被占用的情况,可以采取多种方法来解决问题。通常情况下,端口冲突是因为其他应用程序正在使用相同的端口号。 #### 方法一:更改应用配置中的端口号 如果开发环境允许修改服务的监听端口,在项目的配置文件中调整端口号是一个简单有效的解决方案。对于Spring Boot项目而言,可以在`application.properties`或`application.yml`文件内指定不同的服务器端口: ```properties server.port=8081 ``` 或者在YAML格式下: ```yaml server: port: 8081 ``` 这种方法不会影响到已经运行的服务实例,并能立即生效[^1]。 #### 方法二:查找并终止占用端口的进程 一种常见的处理方式是找到当前占用目标端口的应用程序,并将其关闭。具体操作如下: - **Windows**: 打开命令提示符窗口,输入 `netstat -ano | findstr :<port>` 来获取PID(进程ID),接着使用 `taskkill /F /PID <pid>` 命令强制结束对应的任务。 - **Linux/macOS**: 使用终端执行 `lsof -i:<port>`, 这会显示所有连接的信息以及它们所属的进程;之后可以通过 `kill -9 <pid>` 终止特定进程。 请注意,随意杀死未知来源的后台进程可能会导致系统不稳定或其他软件无法正常工作,因此建议先确认这些进程的身份再做决定。 #### 方法三:重启计算机或IDE 有时最直接的办法就是重新启动电脑或是仅仅重启集成开发环境(IntelliJ IDEA),这有助于清理可能存在的临时状态或残留资源锁定问题,从而释放所需的网络接口[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值