IntelliJ IDEA 报错:You aren't using a compiler supported by lombok

3,437 阅读1分钟

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.$Proxy8com.sun.proxy.$Proxy24),导致 Lombok 处理器无法生效。

此外,Lombok 插件和项目依赖的 Lombok jar 是两个不同的东西,二者都需要正确配置。


解决方案

1. 检查并切换编译器

  1. 打开 File > Settings > Build, Execution, Deployment > Compiler > Java Compiler
  2. 确保 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.xmlbuild.gradle 中已添加 Lombok 依赖
  • IDEA 已安装并启用 Lombok 插件

4. 重新构建项目

  • 清理并重新构建项目(Build > Rebuild Project
  • 重启 IDEA

参考链接


总结

遇到 Lombok 不生效且提示编译器不支持时,优先检查 IDEA 的编译器设置,并尝试添加 -Djps.track.ap.dependencies=false VM 参数。这样可以让 Lombok 正常工作,避免开发效率受影响。