我尝试执行 jar xuggle-xuggler.jar 并且出现此错误(我在 jar 目录中使用 java -jar 命令执行):
线程“main”中的异常 java.lang.NoClassDefFoundError: org/apache/commons/cli/CommandLineParser
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang .Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
原因:java.lang .ClassNotFoundException: org.apache.commons.cli.CommandLineP arser
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
在 java.security.AccessController.doPrivileged(Native Method)
在 java.net.URLClassLoader.findClass(Unknown Source)
在 java.lang.ClassLoader.loadClass(Unknown Source)
在 java.lang.ClassLoader.loadClass(Unknown Source)
.. . 6 更多
但是我所有的jar都在同一个目录commons-cli.jar logback-classic.jar logback-core.jar slf4j-api.jar。
这里的清单:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.2
Created-By: 1.6.0_23-b23 (Sun Microsystems Inc.)
Implementation-Vendor: www.xuggle.com
Implementation-Title: xuggle-xuggler
Implementation-Version: 5.4 .0
Main-Class: com.xuggle.xuggler.Converter
Xuggle-Native-App: xuggle-xuggler
Xuggle-Native-Root: /com/xuggle/ferry
Xuggle-Native-Paths: i386-xuggle-darwin11;i686-pc- linux-gnu;i686-w64 -mingw32;x86_64-pc-linux-gnu;x86_64-w64-mingw32;x86_64-xuggle-darwin11
Xuggle-Native-Bundles: i386-xuggle-darwin11;i686-pc-linux-gnu;i686 -w64 -mingw32;x86_64-pc-linux-gnu;x86_64-w64-mingw32;x86_64-xuggle-darwin11
类路径:commons-cli.jar logback-classic.jar logback-core.jar slf4j-api.jar
所以,jar 是可见的,不包括在 xuggle-xuggler.jar 中,在类路径中......所以我不明白......