idea中的Java版本运行错误

devtools/2024/10/9 6:02:32/

1.java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid'

这个错误通常是由于升级到Java 21后,Lombok等库无法正确访问内部的Java编译器API导致的。具体原因如下:

Lombok在早期版本中使用反射访问com.sun.tools.javac.tree.JCTree$JCImport类的qualid字段,该字段在Java 21中的类型发生了变化。

在Java 21及更高版本中,qualid字段的类型从JCTree变更为JCFieldAccess。这导致了Lombok无法正确访问该字段,从而抛出NoSuchFieldError异常。

解决方案:

将Lombok库升级到1.18.30或更高版本。该版本已经修复了这个问题。[3]

在项目的依赖项中添加Lombok的最新版本

<dependency>    <groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.32</version><scope>provided</scope>
</dependency>


如果使用Maven,还需要在maven-compiler-plugin中指定Lombok的版本:

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.11.0</version><configuration><annotationProcessorPaths><path><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.32</version></path></annotationProcessorPaths></configuration>
</plugin>


通过升级Lombok版本,就可以解决这个NoSuchFieldError的问题。

                        


http://www.ppmy.cn/devtools/123229.html

相关文章

乌班图基础设施安装之Mysql8.0+Redis6.X安装

简介&#xff1a;云服务器基础设施安装之 Mysql8.0Redis6.X 安装 Docker安装 # 按照依赖 yum install -y yum-utils device-mapper-persistent data lvm2 Docker Mirror 从去年开始. hub.docker.com[1] 在国内的访问速度极慢. 当时大家主要还是依赖国内的一些镜像源: 如中科…

【前沿 热点 顶会】NIPS/NeurIPS 2024中与Mamba/状态空间模型有关的论文

Hybrid Mamba&#xff1a;一种有前途的背景下 RL&#xff0c;用于长期决策 最近的研究表明&#xff0c;变压器模型在强化学习(RL)中具有显著的优势&#xff0c;在强化学习中&#xff0c;决策问题被描述为序列生成。基于转换器的代理可以通过提供任务上下文&#xff0c;例如称为…

力扣16~20题

题16&#xff08;中等&#xff09;&#xff1a; 思路&#xff1a; 双指针法&#xff0c;和15题差不多&#xff0c;就是要排除了&#xff0c;如果total<target则排除了更小的&#xff08;left右移&#xff09;&#xff0c;如果total>target则排除了更大的&#xff08;rig…

【Postman】接口测试工具使用

干就完啦 Postman发送get请求案例1&#xff1a; Postman发送post请求案例2 Postman发送其他请求Postman测试实战 学习目标&#xff1a;能够使用Postman发送get/post/put/delete请求并获取响应结果 Postman发送get请求 首先postman是一款接口调试工具&#xff0c;支持win&…

面试题:Redis(二)

1. 面试题 2. MoreKey案列 事故案例 2.1 生成上如何限制key*/flushdb/flushall等危险命令的使用&#xff1f; 通过redis.conf配置文件中在SECURITY选项中禁用这些命令 2.2 不用key*避免卡顿那用什么&#xff1f; 用scan命令&#xff0c;类似mysql中的limit命令 语法&…

FreeRTOS学习笔记内置部分公司面试题目(更新中)

1. 简介 1.1 RTOS简介 RTOS(实时操作系统)是指一类系统&#xff0c;如 FreeRTOS&#xff0c;uC/OS&#xff0c;RTX&#xff0c;RT-Thread 等&#xff0c;都是 RTOS 类操作系统。 FreeRTOS 由美国的 Richard Barry 于 2003 年发布。 FreeRTOS 于 2017 年被亚马逊收购&#x…

shell脚本写代码

用简单的test语句来判断是否闰年 #! /bin/bash read -p "sd " yearif [ $((year%4)) -eq 0 -a $((year%100)) -ne 0 -o $((year%400)) -eq 0 ]thenecho "是润年"elseecho "不是闰年" fi判断一个数是否为偶数 #! /bin/bash read -p "…

小白使用图标(Icon)的技术文档

使用图标&#xff08;Icon&#xff09;的技术文档 1. 引言 图标&#xff08;Icon&#xff09;是用户界面设计中不可或缺的元素&#xff0c;它们通过视觉符号传达信息&#xff0c;增强用户体验。本文档旨在介绍如何在网页设计中有效引用图标。 2. 图标的作用 提高识别度&…