Java:NoClassDefFoundError使用Apache Commons CLI 1.2
我正在使用Apache Commons CLI 1.2解析Java中的命令行参数。我在尝试运行java类时遇到了Java:NoClassDefFoundError使用Apache Commons CLI 1.2,java,exception,noclassdeffounderror,apache-commons-cli,Java,Exception,Noclassdeffounderror,Apache Commons Cli,我正在使用Apache Commons CLI 1.2解析Java中的命令行参数。我在尝试运行java类时遇到了NoClassDefFoundError,但通过修复类路径解决了这个问题 现在,我有同样的例外,但关于实际的commons cli类,如下所示: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/cl i/CommandLineParser Caused by: java.
NoClassDefFoundError
,但通过修复类路径解决了这个问题
现在,我有同样的例外,但关于实际的commons cli
类,如下所示:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/cl i/CommandLineParser Caused by:
java.lang.ClassNotFoundException: org.apache.commons.cli.CommandLineP arser
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source) Could not find the main class: com.amirsys.score.api.script.CMDContentPusher.
我能想到的唯一一件事是将类路径设置为commons cli jar,但这不起作用。我还没有找到解决方案来修复导入类的
NoClassDefFoundError
。我以为这些文件已编译到.class文件中?Commons CLI在运行时不在类路径中。如果您很难获得正确的类路径,您可以尝试将应用程序打包为一个包含所有依赖项的大jar文件,包括Commons CLI。有很多工具可以实现这一点(jarjar、onejar、Maven shade plugin…)这可能很有用:您到底如何运行应用程序?看起来commons cli不在类路径上…我试图从windows命令行运行它。那么,我是否也要在初始参数中将类路径添加到commons cli?我有一种可怕的感觉,我将迷失在一个班级的毛线球里。。。有没有更简单的方法?