Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:NoClassDefFoundError使用Apache Commons CLI 1.2_Java_Exception_Noclassdeffounderror_Apache Commons Cli - Fatal编程技术网

Java:NoClassDefFoundError使用Apache Commons CLI 1.2

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.

我正在使用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.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?我有一种可怕的感觉,我将迷失在一个班级的毛线球里。。。有没有更简单的方法?