Unable to open debugger port (127.0.0.1:63777): java.net.BindException "Address already in use: JVM

对Intellij IDEA是又爱又恨呀,爱的比myeclipse用起来爽手多了,恨的是刚开始用还不是很习惯。

偶尔启动Debug模式用Tomcat来调试会报以下错误:

Unable to open debugger port (127.0.0.1:63777): java.net.BindException "Address already in use: JVM_Bind"

困扰了我好久,试过删掉taget文件夹rebuild,试过杀掉java进程和重启机器,但是就是没效果。

今天看到这个贴子(https://youtrack.jetbrains.com/issue/IDEA-92953# )讲的刚是我遇到的问题,原来问题出来Tomcat Server的配置上。

如下图所示,问题解决之前端口用的是63777,后来我索性把这个Tomcat Server删掉重新创建一下,它就自动使用50424这个端口了,启动Debug模式,问题解决成功!

(当然,你不删除Tomcat Server配置,手动修改端口号估计也行,但是我试了它只能用上下箭头去改端口,好麻烦。而且手动改了之后也不一定能用,所以不如重建让Intellij IDEA自动找的好)。


当遇到 `Unable to open debugger port (127.0.0.1:62377): java.net.BindException "Address already in use: JVM_Bind"` 错误时,表示调试器尝试绑定的端口已经被其他进程占用。解决此问题通常需要识别并终止占用该端口的进程,或者更改调试器使用的端口。 ### 识别并终止占用端口的进程 在大多数操作系统中,可以使用命令行工具来查找和终止占用特定端口的进程。 #### 在 Linux 或 macOS 上 1. **查找占用端口的进程**: 使用 `lsof` 或 `netstat` 命令来查找占用端口的进程。例如: ```bash lsof -i :62377 ``` 或者: ```bash netstat -tulnp | grep :62377 ``` 2. **终止进程**: 一旦找到占用端口的进程 ID (PID),可以使用 `kill` 命令终止该进程。例如: ```bash kill -9 <PID> ``` #### 在 Windows 上 1. **查找占用端口的进程**: 使用 `netstat` 命令来查找占用端口的进程。例如: ```cmd netstat -ano | findstr :62377 ``` 2. **终止进程**: 使用 `taskkill` 命令终止找到的进程。例如: ```cmd taskkill /F /PID <PID> ``` ### 更改调试器使用的端口 如果无法终止占用端口的进程,或者希望避免未来再次遇到类似问题,可以更改调试器使用的端口。 #### 在 IntelliJ IDEA 中更改调试端口 1. 打开 **Run/Debug Configurations** 窗口。 2. 选择需要修改的配置。 3. 在 **Configuration** 选项卡中,找到 **Port** 字段。 4. 将端口号更改为未被占用的端口号,例如 `62378`。 5. 点击 **Apply** 并保存更改。 #### 示例配置更改 ```xml <configuration> <port>62378</port> </configuration> ``` ### 预防措施 - **定期检查端口使用情况**:定期使用命令行工具检查端口使用情况,确保调试端口未被意外占用。 - **使用动态端口分配**:某些 IDE 支持动态端口分配,可以在调试器配置中启用此功能,以避免手动指定端口带来的冲突。 - **避免多个调试会话同时运行**:确保在同一时间只运行一个调试会话,以减少端口冲突的可能性。 通过以上方法,可以有效解决调试器端口无法绑定的问题[^1]。
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值