JDK 24编译Java Web应用失败:报ExceptionInInitializerError错误如何解决?
解决Lombok编译报错:java.lang.ExceptionInInitializerError (TypeTag :: UNKNOWN)
这个错误核心原因是Lombok版本与JDK不兼容,或是Maven编译插件未正确配置Lombok注解处理器,按以下步骤解决:
1. 明确指定兼容的Lombok版本
你的pom依赖未指定Lombok版本,Maven会默认拉取旧版本,而旧版本不支持高版本JDK(比如JDK11/17)。根据你的JDK版本选择对应Lombok版本:
- JDK 8:Lombok 1.18.20及以下
- JDK 11:Lombok 1.18.16+
- JDK 17/21:Lombok 1.18.22+
修改后的依赖:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> <!-- 替换为对应JDK的兼容版本 --> <scope>provided</scope> <!-- 建议添加,避免打包进最终产物 --> </dependency>
2. 配置Maven编译插件,启用Lombok注解处理器
Maven Compiler Plugin 3.5+版本需要显式配置注解处理器路径,否则Lombok无法在编译阶段生效。在pom的<build>节点下添加:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <!-- 使用最新稳定版 --> <configuration> <source>17</source> <!-- 替换为你的JDK版本,如11、8 --> <target>17</target> <annotationProcessorPaths> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> <!-- 和上方Lombok版本保持一致 --> </path> </annotationProcessorPaths> </configuration> </plugin> </plugins> </build>
3. IDE环境检查(若使用IDE编译)
- 确保IDE已安装Lombok插件(如IDEA的Lombok Plugin、Eclipse的Lombok Feature)
- 开启注解处理器开关:
- IDEA:Settings → Build, Execution, Deployment → Compiler → Annotation Processors → 勾选"Enable annotation processing"
- Eclipse:Preferences → Java → Compiler → Annotation Processing → 勾选"Enable annotation processing"
完成以上步骤后,执行mvn clean compile重新编译即可解决问题。
内容的提问来源于stack exchange,提问作者Đỗ Như Vỹ
相关产品推荐
相关产品推荐

