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

news/2024/11/19 16:04:53/

在运行项目时出现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/news/1548269.html

相关文章

【网络安全】SSL(一):为什么需要 Keyless SSL?

未经许可,不得转载。 文章目录 背景正文背景 随着网站和应用程序向云端迁移,使用 HTTPS(SSL/TLS)加密流量已成为行业标准。然而,传统的 HTTPS 配置要求服务器持有网站的私钥,这在云计算环境中引发了一系列安全性和合规性问题。一旦云服务器遭到攻击,私钥泄露可能带来不…

集群聊天服务器(9)一对一聊天功能

目录 一对一聊天离线消息服务器异常处理 一对一聊天 先新添一个消息码 在业务层增加该业务 没有绑定事件处理器的话消息会派发不出去 聊天其实是服务器做一个中转 现在同时登录两个账号 收到了聊天信息 再回复一下 离线消息 声明中提供接口和方法 张三对离线的李…

springboot 获取spring上下文

有一个工具类可以直接获取&#xff0c;不知道为啥所有的文章基本都写了获取spring上下文的4种方法&#xff0c;抄来抄去的&#xff0c;然后获取的还特别麻烦 SpringContextUtil.getApplicationContext()直接就可以获取了 抄博客的真恶心&#xff01;&#xff01;&#xff01;…

十一:HTTP 状态码详解:解读每一个响应背后的意义

HTTP(超文本传输协议)是网络通信的基石之一,主要用于客户端(例如浏览器)和服务器之间的通信。为了让服务器能准确地向客户端反馈请求的处理状态,HTTP设计了一套标准的状态码。每一个状态码代表了特定的含义,指示了请求的状态、潜在的问题或成功的信息。 1. 信息响应 (1…

Spring Boot中集成Redis与MySQL

1. 环境准备与依赖配置 1.1 Maven 依赖管理 为了在 Spring Boot 项目中使用 Redis 和 MySQL&#xff0c;我们需要在 pom.xml 中添加必要的依赖。主要包括以下几个依赖&#xff1a; Spring Data Redis&#xff1a;用于在 Spring Boot 中集成 Redis&#xff0c;提供 RedisTem…

golang开源框架:go开源验证框架validator

validator 单个字段格式验证 先来一个单个字段格式的验证 目录结构 在main函数中 package mainimport "awesomeProject/validate"func main() {validate.SingleFieldValidate() }在validator.go中 package validateimport ("github.com/go-playground/val…

第13天:高级主题 - ViewModel 和 LiveData

在第13天&#xff0c;我们将深入学习Android的两个重要组件&#xff1a;ViewModel 和 LiveData&#xff0c;并通过一个实践实例来学习如何应用它们。这些组件是 Android Jetpack 的一部分&#xff0c;它们不仅能让应用更具响应性和可扩展性&#xff0c;还能帮助你在面对配置变化…

基于Java的药店管理系统

药店管理系统 一&#xff1a;基本介绍开发环境管理员功能模块图系统功能部分数据库表设计 二&#xff1a;部分系统页面展示登录界面管理员管理进货信息界面管理员管理药品信息界面管理员管理员工界面管理员管理供应商信息界面管理员管理销售信息界面员工对信息进行管理员工对销…