报错java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not ...解决方法

embedded/2024/11/19 22:35:40/

在运行项目时出现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是新版本,

然后刷新。

2.第二步:把该项目在终端打开,然后输入:mvn idea:idea

按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' 通常是由以下几个原因引起的:

  1. Lombok 版本不兼容:Lombok 的某些版本可能不兼容你当前使用的 JDK 版本。

  2. 编译器缓存问题:IDE 或构建工具可能缓存了旧的编译结果,导致运行时出现问题。

  3. IDE 配置问题:IDE 可能没有正确识别或处理 Lombok 注解。

解决步骤解释

第一步:更新 Lombok 版本

  1. 在 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 项目文件

  1. 在终端中运行 mvn idea:idea

    • 原因:这个命令会生成或更新 IntelliJ IDEA 的项目文件(如 .iml 和 .ipr 文件),确保 IDE 能够正确识别和处理项目的依赖关系和配置。

    • 操作:在项目根目录下打开终端,运行以下命令:

    sh

    深色版本

    mvn idea:idea
    • 效果:这个命令会:

      • 生成或更新 .iml 文件,这些文件描述了模块的结构和依赖关系。

      • 生成或更新 .ipr 文件,这些文件描述了整个项目的配置。

      • 确保 IntelliJ IDEA 能够正确解析和处理 Maven 项目的依赖关系。

综合效果

通过上述两个步骤,你能够:

  1. 确保使用最新的 Lombok 版本:这减少了因版本不兼容引起的问题。

  2. 更新 IDE 的项目配置:这确保 IDE 能够正确识别和处理 Lombok 注解和其他依赖关系。

具体步骤总结

  1. 更新 Lombok 版本

    • 编辑 pom.xml 文件,将 Lombok 版本更新为最新版本。

    • 刷新 Maven 项目,确保依赖项被正确下载和解析。

  2. 重新生成 IDEA 项目文件

    • 在项目根目录下打开终端,运行 mvn idea:idea

    • 这个命令会生成或更新 IntelliJ IDEA 的项目文件,确保 IDE 能够正确识别和处理项目的依赖关系和配置。

通过这些步骤,你的项目应该能够正常运行,不再出现 java.lang.NoSuchFieldError 错误。


http://www.ppmy.cn/embedded/138885.html

相关文章

单体架构和微服务架构到底哪个好?

单体和微服务谁是毒瘤&#xff1f;单体、分布式、微服务、SOA到底是什么关系&#xff1f;我的系统该用什么架构&#xff1f;最近终于下定决心研究这个问题并且有所收获&#xff0c;欢迎一起讨论。 一、架构的发展历程 我坚定的认为要深刻的理解一项技术光靠网上一两张按照各项…

sql 根据身份证号获取出生日期并转成对应格式

sql server 查询判断身份证号是18位的 select SUBSTRING(SUBSTRING(IDCard,7,8),1,4)-SUBSTRING(SUBSTRING(IDCard,7,8),5,2)-SUBSTRING(SUBSTRING(IDCard,7,8),7,2) from 表 where Birthday is null and LEN(IDCard)18 修改 update 表set BirthdaySUBSTRING(SUBSTRING…

kafka:使用flume自定义拦截器,将json文件抽取到kafka的消息队列(topic)中,再从topic中将数据抽取到hdfs上

抽取trans_info.json的数据到kafka上&#xff0c;对其中的tr_flag0的数据进行过滤抛弃&#xff0c;只保留正常的状态数据&#xff1a; 将此json文件放在集群中的 /home/zidingyi/trans_info.json 目录下 首先先在java代码中自定义拦截器&#xff1a; 1&#xff09;&#xff1…

服务器开机即占用大量内存,解决

1.服务器开机两分钟不到&#xff0c;内存使用飙升 [rootlocalhost ~]# top #查看是否有了明显的内存占用程序 2.上述未果&#xff0c;查看是否有违规的开机自启项 [rootlocalhost ~]# chkconfig --list 3.上述无果&#xff0c;查看开启启动加载项内容 上网搜后&#xff…

《深度学习》VGG网络

文章目录 1.VGG的网络架构2.案例&#xff1a;手写数字识别 学习目标&#xff1a; 知道VGG网络结构的特点能够利用VGG网络完成图像分类 2014年&#xff0c;⽜津⼤学计算机视觉组&#xff08;Visual Geometry Group&#xff09;和GoogleDeepMind公司的研究员⼀起研发出了新的深度…

第五章 Vue 组件与生命周期

学习目标 5.1 Vue组件5.1.1 为什么要使用组件5.1.2 组件入门5.1.2.1 全局组件5.1.2.2 局部组件 5.2 组件通讯5.2.1 父子组件定义5.2.2 父组件给子组件传值5.2.3 子组件给父组件传值5.2.4 单向数据流 5.3 插槽5.3.1 匿名插槽5.3.2 具名插槽 5.4 生命周期钩子函数5.4.1 生命周期图…

android 如何获取当前 Activity 的类名和包名

其一&#xff1a;getClass().getSimpleName() public static String getTopActivity(Context context){ ActivityManager am (ActivityManager) context.getSystemService(context.ACTIVITY_SERVICE); ComponentName cn am.getRunningTasks(1).get(0).topAct…

第一章 JavaSE发展史及OpenJDK与OracleJDK区别

目录 一、Java SE的发展历史 1.1. Java版本年历 二、Open JDK 和 Oracle JDK 2.1. Open JDK来源 2.2. Open JDK 和 Oracle JDK的关系 三、小结 Open JDK 官网 http://openjdk.java.net/ 一、Java SE的发展历史 Sun公司在1991年成立了一个称为绿色计划( Green Project …