具有Maven依赖关系的json-simple JSONParser NoClassDefFoundError

问题描述

我的程序打算使用json-simple读取JSON文件作为JSONObject,并且可以正常编译,但是在运行时出现错误

java.lang.classNotFoundException: org.json.simple.parser.JSONParser
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.classLoader.loadClass(ClassLoader.java:522)
        ... 7 more

负责的代码似乎是我初始化新JSONParser的行:

import org.json.simple.parser.JSONParser;
...

JSONParser parser = new JSONParser(); // This line

由于它告诉我JSONParser类不存在,但是它肯定在中央存储库.jar中存在,因此我觉得这是我设置Maven的方式,所以这是我的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>app</groupId>
    <artifactId>app</artifactId>
    <packaging>jar</packaging>
    <version>1.0</version>
    <name>app</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
            <version>1.1.1</version>
        </dependency>
    </dependencies>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>
    <build>
        <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.0.0</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>app.Main</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
    <resources>
       <resource>
          <directory>src/main/resources</directory>
          <filtering>true</filtering>
       </resource>
    </resources>
    </build>
</project>

运行我要编译的所有东西

mvn package

所以我不确定发生了什么,我认为依赖关系在包含在Maven中之后会自动链接,但是我绝对不是专家。想知道是否有人知道这个问题与我设置Maven的方式有关,还是还有其他原因?

编辑 找到了解决方法here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)