出现java.lang.NoClassDefFoundError:org/json/JSONException错误的解决方案

出现java.lang.NoClassDefFoundError:org/json/JSONException错误的解决方案

img

org/json/JSONException 未找到这个 类的定义, 有可能是这个类对应的jar版本 和 你当前的jdk版本 存在冲突,导致无法识别到这个类

  • 这篇博客也许可以解决你的问题👉 :java.lang.NoClassDefFoundError: jakarta/json/JsonException
  • 以下回答由chatgpt基于相关博客总结生成:

    针对这个问题,根据参考资料,可以采取以下几个解决方案:

    1.添加依赖

    根据参考资料中的段落0,可以尝试添加如下依赖:

    <dependency>
        <groupId>jakarta.json</groupId>
        <artifactId>jakarta.json-api</artifactId>
        <version>2.0.1</version>
    </dependency>
    

    2.将6个jar包添加到Tomcat目录下的lib文件夹中

    根据参考资料中的段落3,可以将json所需的6个jar包复制到Tomcat目录下的lib文件夹中,然后重启Tomcat即可。

    3.在多模块项目中添加依赖

    如果是多模块项目,可以在父模块下的pom文件中设置版本号,比如:

    <properties>
        <jakarta-json.version>2.0.1</jakarta-json.version>
        <elasticsearch.version>7.16.2</elasticsearch.version>
    </properties>
    

    然后在子模块的pom文件中添加依赖,如下所示:

    <dependency>
        <groupId>co.elastic.clients</groupId>
        <artifactId>elasticsearch-java</artifactId>
        <version>${elasticsearch.version}</version>
    </dependency>
    <dependency>
        <groupId>jakarta.json</groupId>
        <artifactId>jakarta.json-api</artifactId>
        <version>${jakarta-json.version}</version>
    </dependency>
    

    4.在单模块项目中添加依赖

    如果是单模块项目,可以在pom文件中添加如下依赖:

    <dependency>
        <groupId>co.elastic.clients</groupId>
        <artifactId>elasticsearch-java</artifactId>
        <version>7.16.2</version>
    </dependency>
    <dependency>
        <groupId>jakarta.json</groupId>
        <artifactId>jakarta.json-api</artifactId>
        <version>2.0.1</version>
    </dependency>
    

    需要注意的是,如果项目中已经存在旧版本的依赖,需要先将其排除掉,然后再添加新版本的依赖。比如:

    <dependency>
        <groupId>co.elastic.clients</groupId>
        <artifactId>elasticsearch-java</artifactId>
        <version>7.16.2</version>
        <exclusions>
            <exclusion>
                <groupId>jakarta.json</groupId>
                <artifactId>jakarta.json-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>jakarta.json</groupId>
        <artifactId>jakarta.json-api</artifactId>
        <version>2.0.1</version>
    </dependency>
    

    5.修改SpringBoot版本或者json版本

    根据参考资料中的段落6,有时候是因为SpringBoot版本或者json版本的问题导致找不到类出现异常,这时候需要替换掉对应的版本。比如,将SpringBoot版本替换成2.5.6,将json版本替换成2.0.1。

应该是你的代码中用到了json序列化,但是编译的时候没有找到相应的类 JSONException,检查下json依赖是否成功添加