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

运行Java主类遇NoClassDefFoundError(org/apache/commons/cli/ParseException)如何解决?

解决方法
  • 问题根源:你给commons-cli依赖加了<scope>provided</scope>,这个作用域意味着编译时会用到这个依赖,但运行时不会把它打包进项目,所以运行时JVM找不到对应的类,就抛出了NoClassDefFoundError。

  • 具体修复步骤:

    1. 把所有pom.xml里的commons-cli依赖中的<scope>provided</scope>删掉,修改后的依赖代码如下:
      <dependency>
          <groupId>commons-cli</groupId>
          <artifactId>commons-cli</artifactId>
          <version>1.2</version>
      </dependency>
      
    2. 因为是多模块项目,务必确认你运行的主类所在模块的pom也做了这个修改,别漏了。
    3. 执行Maven命令清理重建,确保依赖生效:
      mvn clean install
      
    4. 如果用IDE运行,记得刷新Maven依赖(比如IntelliJ点Maven窗口的刷新按钮,Eclipse选Maven -> Update Project),避免IDE用旧缓存。
  • 特殊情况:如果你的运行环境(比如应用服务器)本该提供这个依赖,但实际没部署,那要么在环境里手动添加commons-cli的jar包,要么还是按上面的方法去掉provided scope,让项目自己携带依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 14:07:18