JRebel插件安装后无反应需检查三处:未生成rebel.xml、IDEA编译输出路径与rebel.xml不一致、运行配置未启用JRebel;Spring Boot项目还需禁用devtools、启用Spring/Lombok插件;Java/IDEA版本及Mac芯片架构也需匹配。

IDEA里装JRebel插件后没反应?检查这三处
JRebel插件装上不代表就能用,常见现象是改完代码按Ctrl+F9或保存后,控制台没输出“Rebel reload succeeded”,页面也没更新。核心原因通常卡在三个地方:
- 没在项目根目录下生成
rebel.xml——JRebel靠它知道哪些类/资源要监控,插件安装后需右键项目 → “JRebel” → “Generate rebel.xml” - IDEA的编译输出路径没对齐——JRebel默认监听
target/classes(Maven)或out/production(普通Java模块),但如果你改过Project compiler output路径,得手动在rebel.xml里同步<dir name="...">指向 - 运行配置没勾选JRebel——点右上角运行配置 → “Modify options” → 勾选 “Enable JRebel”(旧版叫 “JRebel agent”),否则启动时根本没加载agent
Spring Boot项目热部署失败:别只盯JRebel,先看spring.devtools
JRebel和spring-boot-devtools共存时容易互相干扰,尤其在类加载器层面。典型表现是:改Controller方法体,JRebel日志显示重载成功,但请求返回老结果。
- 必须禁用
spring-boot-devtools——在pom.xml里注释掉spring-boot-devtools依赖,或启动参数加--spring.devtools.restart.enabled=false - 确保JRebel用的是
spring插件(非默认基础模式)——在IDEA设置 → “JRebel” → “Plugins” → 勾选 “Spring”,否则它不解析@RestController等注解的映射关系 - 如果用Lombok,确认JRebel已加载Lombok插件——同上路径勾选“Lombok”,不然
@Data生成的getter/setter变更不会触发重载
rebel.xml手动生成还是自动生成?看项目结构
rebel.xml本质是告诉JRebel:“这些目录下的class和资源文件,一变就重载”。生成方式取决于你是否需要精细控制路径。
- 单模块Maven项目:直接用IDEA右键 → “Generate rebel.xml”就行,它会自动填
target/classes和src/main/resources - 多模块聚合项目:每个子模块都要单独生成
rebel.xml,且父模块的rebel.xml不能删——JRebel靠它识别模块依赖链,否则子模块改动可能触发不了父模块重载 - Web项目(非Spring Boot):必须手动在
rebel.xml里补<web>段,比如<link target="http://localhost:8080/myapp/"><dir name="src/main/webapp"/></link>,否则HTML/JS/CSS不生效
JRebel启动报错“Failed to start JRebel agent”?重点查Java版本和IDEA兼容性
这个错误不是配置问题,而是底层agent加载失败,90%出在Java版本和JRebel版本不匹配。
立即学习“Java免费学习笔记(深入)”;
- JRebel 2023.2+ 才完全支持Java 17+,用Java 21必须装JRebel 2024.1+,旧版会直接崩溃并打印
java.lang.UnsupportedClassVersionError - IDEA版本太低(如2021.1)会导致JRebel插件无法注入启动参数——检查IDEA Help → “About”里的构建号,JRebel官网有明确的
IDEA version ↔ JRebel plugin version对照表 - Mac M系列芯片用户:确认下载的是ARM64版JRebel,x86_64版在Rosetta下运行会卡在agent初始化,日志停在
Starting JRebel Agent...不动
最麻烦的其实是rebel.xml里路径写死本地绝对路径,换电脑或CI环境就失效;真要跨环境,优先用${project.basedir}这类变量,而不是/Users/xxx/project/target/classes。


















