IntelliJ IDEA 报错:You aren't using a compiler supported by lombok,如何解决?
在使用 IntelliJ IDEA 运行 Java 项目时,可能会遇到如下报错:
java: You aren't using a compiler supported by lombok, so lombok will not work and has been disabled.
Your processor is: com.sun.proxy.$Proxy24
Lombok supports: sun/apple javac 1.6, ECJ
本文将分析原因并给出详细解决方案。
问题背景
- IDE 版本:IntelliJ IDEA 2020.3 及以上
- Lombok 版本:0.32-EAP 或其他
- 现象:项目无法正常编译,Lombok 注解失效,IDEA 控制台报如上错误。
原因分析
Lombok 只支持特定的 Java 编译器(如 OpenJDK javac、Eclipse Compiler for Java (ECJ))。而 IDEA 默认可能会使用自己的编译器(如 org.jetbrains.jps.javac.$Proxy8 或 com.sun.proxy.$Proxy24),导致 Lombok 处理器无法生效。
此外,Lombok 插件和项目依赖的 Lombok jar 是两个不同的东西,二者都需要正确配置。
解决方案
1. 检查并切换编译器
- 打开
File>Settings>Build, Execution, Deployment>Compiler>Java Compiler - 确保
Use compiler:选择的是Javac,而不是IntelliJ IDEA
2. 添加 VM 选项
有些情况下,即使切换了编译器,仍然会报错。此时可以在编译器 VM 选项中添加如下参数:
-Djps.track.ap.dependencies=false
设置方法:
- 打开
File>Settings>Build, Execution, Deployment>Compiler - 在
Shared build process VM options中添加上述参数
3. 检查 Lombok 依赖和插件
- 确保
pom.xml或build.gradle中已添加 Lombok 依赖 - IDEA 已安装并启用 Lombok 插件
4. 重新构建项目
- 清理并重新构建项目(
Build > Rebuild Project) - 重启 IDEA
参考链接
总结
遇到 Lombok 不生效且提示编译器不支持时,优先检查 IDEA 的编译器设置,并尝试添加 -Djps.track.ap.dependencies=false VM 参数。这样可以让 Lombok 正常工作,避免开发效率受影响。