首页 > 基础资料 博客日记
【已解决】java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have
2025-01-05 11:00:06基础资料围观98次
参考:https://blog.csdn.net/m0_53762408/article/details/143491273
在运行项目时出现java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid’zz这样的报错
解决方法
1.第一步:在pom文件中将lombok的版本改成最新的
此时1.18.34是新版本,
然后刷新。
按enter运行
完成上述两步,再次运行程序就正常了。
下面是报错原因,以及每一步操作原理的解释
错误 java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field ‘com.sun.tools.javac.tree.JCTree qualid’ 通常是由以下几个原因引起的:
Lombok 版本不兼容:Lombok 的某些版本可能不兼容你当前使用的 JDK 版本。
编译器缓存问题:IDE 或构建工具可能缓存了旧的编译结果,导致运行时出现问题。
IDE 配置问题:IDE 可能没有正确识别或处理 Lombok 注解。
解决步骤解释
第一步:更新 Lombok 版本
在 pom 文件中将 lombok 的版本改成最新的:
原因:确保你使用的是最新版本的 Lombok,因为新版本通常会修复一些已知的问题和不兼容性。
操作:编辑 pom.xml 文件,将 Lombok 的版本更新为最新版本,例如 1.18.34。
xml
深色版本
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.34</version>
<scope>provided</scope>
</dependency>
刷新:保存 pom.xml 文件后,刷新 Maven 项目,确保依赖项被正确下载和解析。在 IntelliJ IDEA 中,你可以右键点击项目,选择 Maven -> Reload Project。
第二步:重新生成 IDEA 项目文件
在终端中运行 mvn idea:idea:
原因:这个命令会生成或更新 IntelliJ IDEA 的项目文件(如 .iml 和 .ipr 文件),确保 IDE 能够正确识别和处理项目的依赖关系和配置。
操作:在项目根目录下打开终端,运行以下命令:
sh
深色版本
mvn idea:idea
效果:这个命令会:
生成或更新 .iml 文件,这些文件描述了模块的结构和依赖关系。
生成或更新 .ipr 文件,这些文件描述了整个项目的配置。
确保 IntelliJ IDEA 能够正确解析和处理 Maven 项目的依赖关系。
综合效果
通过上述两个步骤,你能够:
确保使用最新的 Lombok 版本:这减少了因版本不兼容引起的问题。
更新 IDE 的项目配置:这确保 IDE 能够正确识别和处理 Lombok 注解和其他依赖关系。
具体步骤总结
更新 Lombok 版本:
编辑 pom.xml 文件,将 Lombok 版本更新为最新版本。
刷新 Maven 项目,确保依赖项被正确下载和解析。
重新生成 IDEA 项目文件:
在项目根目录下打开终端,运行 mvn idea:idea。
这个命令会生成或更新 IntelliJ IDEA 的项目文件,确保 IDE 能够正确识别和处理项目的依赖关系和配置。
通过这些步骤,你的项目应该能够正常运行,不再出现 java.lang.NoSuchFieldError 错误。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签: