You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode中Maven项目用json-simple运行Java报NoClassDefFoundError如何解决

错误原因

这个报错属于典型的运行时类路径缺失依赖问题:你代码编译阶段能找到json-simple/gson的类,但是运行的时候JVM没加载到对应依赖的jar包,和JDK环境、代码逻辑本身无关。

解决步骤
  • 第一步:核对pom.xml依赖配置
    确保依赖放在下的标签内,不要误写在或者其他父标签里,正确的json-simple依赖示例如下:

    <dependencies>
      <!-- json-simple依赖 -->
      <dependency>
          <groupId>com.googlecode.json-simple</groupId>
          <artifactId>json-simple</artifactId>
          <version>1.1.1</version>
      </dependency>
    </dependencies>
    

    如果用gson,对应依赖为:

    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.10.1</version>
    </dependency>
    
  • 第二步:强制同步Maven依赖
    打开VSCode终端,切换到项目根目录(pom.xml所在目录),执行命令:
    mvn clean install -U
    加-U参数会强制更新快照依赖,避免本地缓存的依赖包损坏导致的问题。如果执行过程中出现依赖下载失败的报错,需要修改Maven的镜像源为国内源,修改本地Maven安装目录下conf/settings.xml的标签,添加阿里云镜像:

    <mirror>
      <id>aliyunmaven</id>
      <mirrorOf>*</mirrorOf>
      <name>阿里云公共仓库</name>
      <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
    
  • 第三步:刷新VSCode项目识别
    按快捷键Ctrl+Shift+P(Mac为Command+Shift+P)调出命令面板,执行Java: Reload Projects命令,刷新后查看VSCode侧边栏「Java Projects」面板的「External Libraries」目录,确认能看到你引入的json-simple/gson的jar包。

  • 第四步:调整运行方式
    不要直接点击代码编辑区上方的「Run」按钮运行,改用Maven插件执行,先在pom.xml的标签内添加exec运行插件:

    <build>
      <plugins>
          <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>exec-maven-plugin</artifactId>
              <version>3.1.0</version>
              <configuration>
                  <mainClass>pandemic.Game</mainClass>
              </configuration>
          </plugin>
      </plugins>
    </build>
    

    后续运行直接在终端执行命令:
    mvn exec:java
    该命令会自动把所有Maven依赖加载到运行时类路径,不会出现缺类问题。

  • 第五步:打包运行场景的额外配置
    如果你是将项目打包为jar包后运行报错,需要添加打包插件把依赖一起打进jar包,在里添加assembly插件:

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>3.4.2</version>
      <configuration>
          <descriptorRefs>
              <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
          <archive>
              <manifest>
                  <mainClass>pandemic.Game</mainClass>
              </manifest>
          </archive>
      </configuration>
      <executions>
          <execution>
              <id>make-assembly</id>
              <phase>package</phase>
              <goals>
                  <goal>single</goal>
              </goals>
          </execution>
      </executions>
    </plugin>
    

    执行mvn package后,target目录下会生成带jar-with-dependencies后缀的jar包,运行该包即可:
    java -jar target/你的项目名-版本号-jar-with-dependencies.jar

内容的提问来源于stack exchange,提问作者Bunnyrabbit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 03:48:03