使用其他IDE远程调试Eclipse RCP应用时如何实现热代码替换
解决Eclipse RCP远程调试+Eclipse热代码替换的方案
核心思路
用命令行启动RCP并绑定固定远程调试端口,让IDEA负责调试(断点、变量查看),同时用Eclipse完成自动编译和触发热替换操作,两者共用同一个调试端口会话。
具体操作步骤
1. 提取并修改RCP启动参数
- 打开Eclipse,进入
Run > Run Configurations... > Eclipse Application,选中你的RCP启动配置。 - 切换到「Arguments」标签,复制所有VM arguments和Program arguments到文本编辑器。
- 删除其中Eclipse自动生成的随机端口调试参数(形如
-agentlib:jdwp=transport=dt_socket,suspend=y,address=xxxx的内容)。 - 添加固定端口的远程调试参数:
-agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:37135。 - (可选)在「Common」标签勾选「Save as launch configuration file」,导出为
.launch文件,方便后续直接调用启动命令。
2. 启动RCP并连接IDEA远程调试
- 用修改后的命令行启动RCP,此时应用会暂停等待调试器连接。
- 在IDEA中创建「Remote JVM Debug」配置:设置主机为
localhost,端口为37135,启动调试会话。此时IDEA会连接到RCP,应用恢复运行,你可以正常用IDEA设置断点、查看变量。
3. 用Eclipse触发热代码替换
- 确保Eclipse开启自动编译:
Window > Preferences > Java > Compiler > Building,勾选Build automatically,修改代码后Eclipse会自动更新输出目录的class文件。 - 在Eclipse中创建「Remote Java Application」调试配置:
- 项目选择你的RCP主项目;
- 主机填
localhost,端口填37135。
- 启动这个远程调试配置,Eclipse会连接到正在运行的RCP应用。
- 代码修改并自动编译后,在Eclipse的「Debug」视图中右键点击远程调试会话,选择Hot Swap Code,即可完成热替换。
注意事项
- 热替换仅支持方法体修改,新增字段、方法或修改类结构的操作需要重启应用。
- 确保IDEA和Eclipse的远程调试端口一致,且端口未被其他进程占用。
- 如果Eclipse的「Hot Swap Code」按钮呈灰色,检查是否已成功连接调试会话,且class文件已完成编译更新。
内容的提问来源于stack exchange,提问作者udved
相关产品推荐
相关产品推荐

