VSCode 启动 Spring Boot 微服务 JMX 端口冲突问题

VSCode 启动 Spring Boot 微服务 JMX 端口冲突问题(最终解决)

一、问题现象

使用 Visual Studio Code 启动多个微服务时,报错:

text 复制代码
java.rmi.server.ExportException: Port already in use
Caused by: java.net.BindException: Address already in use

即使使用 netstat 也查不到端口占用。


二、根本原因

问题并不在 Spring Boot,而在 JMX(Java 管理接口)

  • JMX 基于 RMI(远程调用)

  • 实际使用 两个端口

    1. jmxremote.port(注册端口)
    2. jmxremote.rmi.port(通信端口)

👉 如果只配置了一个端口:

bash 复制代码
-Dcom.sun.management.jmxremote.port=52053

那么:

  • 第二个端口会 随机分配
  • 多服务启动时仍然可能冲突

三、正确解决方案(在 launch.json 中配置)

👉 必须在 launch.jsonvmArgs 中同时固定两个端口

标准写法:

json 复制代码
"vmArgs": "-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=61010 \
-Dcom.sun.management.jmxremote.rmi.port=61010 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=127.0.0.1"

四、多个微服务配置示例

每个服务使用不同端口,例如:

json 复制代码
{
  "configurations": [
    {
      "name": "gateway",
      "vmArgs": "-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=61010 -Dcom.sun.management.jmxremote.rmi.port=61010 ..."
    },
    {
      "name": "auth",
      "vmArgs": "-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=61011 -Dcom.sun.management.jmxremote.rmi.port=61011 ..."
    },
    {
      "name": "flowable",
      "vmArgs": "-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=61012 -Dcom.sun.management.jmxremote.rmi.port=61012 ..."
    }
  ]
}

五、仍然报错的原因

即使配置正确,仍可能出现:

  • JVM 端口未及时释放(TIME_WAIT)
  • JMX 残留导致"假占用"

六、最终解决办法

✅ 1. 更换一组新端口(最有效)

text 复制代码
61010 / 61011 / 61012

避免使用已经报错的端口(如 52053)。


✅ 2. 清理 Java 进程

bash 复制代码
taskkill /F /IM java.exe

✅ 3. 重启系统(兜底)

彻底释放端口资源。


七、总结

JMX 冲突 = 双端口机制 + 端口未释放

最终解决方案:

✅ 在 launch.json 中配置 port + rmi.port

✅ 每个服务使用不同端口

✅ 避免使用已冲突端口

即可彻底解决问题。


相关推荐
传奇开心果编程2 小时前
【springboot基础语法学与练】第 1 课:从零开始
java·spring boot·后端·学习
辛迪聊物业数字化4 小时前
智慧物业管理平台架构实践:从SaaS物业云到商管系统的全模块落地
大数据·微服务·php
烽学长5 小时前
(附源码)基于Springboot+vue的图书阅读分享系统的设计与实现
java·spring boot·后端
+VX:Fegn08956 小时前
计算机毕业设计|基于java+ vue共享单车信息系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
叶总没有会6 小时前
Nacos—注册中心
spring cloud·微服务
darin_ฅ( ̳• ◡ • ̳)ฅ16 小时前
【开发工具】2026版-VScode&IDEA&Cursor插件安装及插件配置迁移
vscode·idea
别动我齐刘海6 小时前
ROS2 Jazzy + C++ 实战路线——进阶学习3
c++·人工智能·vscode·python·算法·机器学习·机器人
Bs_MoneyMagnet6 小时前
基于springboot+vue的非遗物质文化遗产系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring·毕业设计·计算机毕业设计
计算机毕设定制辅导-无忧学长7 小时前
《基于SpringBoot的未成年人健康知识科普平台的设计与实现》
java·开发语言·vue.js·spring boot·未成年人健康知识科普平台
连山齐名7 小时前
spring的面试八股文
spring boot