必须取消委托构建并启用运行时自动编译才能生效:先取消“Delegate IDE build/run actions to Maven/Gradle”,再勾选“Build project automatically”和“Allow auto-make to start even if developed application is currently running”,最后重启IDE。

IDEA 默认不自动编译 Java 文件,必须手动开启 Build project automatically 并配合注册内部编译器才能生效。
为什么开了 Build project automatically 还不编译?
这是最常踩的坑:只在设置里勾选了选项,但没启用 IDE 的“内部构建器”(Internal Build Process),导致 IDEA 仍走外部 javac 流程,无法实时响应保存动作。
- IDEA 2022.3+ 版本默认使用
Delegate IDE build/run actions to Maven/Gradle,此时Build project automatically实际被绕过 - 即使勾选了,若未启用
Allow auto-make to start even if developed application is currently running,调试中修改代码也不会触发编译 - Java 源码需在
src/main/java等标准路径下,否则编译器识别不到变更
怎么正确开启自动编译(IntelliJ IDEA 2022.3+)
分两步:先改构建委托策略,再开自动构建开关,并放行运行时编译。
- 进入
Settings > Build, Execution, Deployment > Compiler,取消勾选Delegate IDE build/run actions to Maven/Gradle - 进入
Settings > Advanced Settings,勾选Allow auto-make to start even if developed application is currently running - 回到
Settings > Build, Execution, Deployment > Compiler,勾选Build project automatically - 重启 IDE(关键!配置变更需重启才对已有项目生效)
验证是否真正生效
不能只看设置是否打钩,要观察行为:
立即学习“Java免费学习笔记(深入)”;
- 修改一个
.java文件并Ctrl + S,查看右下角是否有Building 'xxx'...提示(非弹窗) - 检查
out/production/xxx/或build/classes/java/main/下对应.class文件的修改时间是否随保存立即更新 - 如果用 Spring Boot,改完 Controller 后刷新网页看到效果,说明热编译链路通了;否则大概率还在用旧 class
自动编译不是“设完就灵”,核心在于构建流程是否落到 IDEA 自身的构建器上。很多人卡在委托给 Gradle/Maven 这一层,以为开了开关就万事大吉——其实那只是个摆设。










