NoClassDefFoundError但正确路径中的jar

时间:2012-07-18 14:43:31

标签: java jar noclassdeffounderror

我尝试执行jar xuggle-xuggler.jar并且我有这个错误(我在jar目录中使用java -jar命令执行):

  

线程“main”中的异常java.lang.NoClassDefFoundError:org / apache / commons / cl   I / CommandLineParser
          at java.lang.Class.getDeclaredMethods0(Native Method)
          at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
          在java.lang.Class.getMethod0(未知来源)
          在java.lang.Class.getMethod(未知来源)
          at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
          在sun.launcher.LauncherHelper.checkAndLoadMain(未知来源)
  引起:java.lang.ClassNotFoundException:org.apache.commons.cli.CommandLineP   arser
          在java.net.URLClassLoader $ 1.run(未知来源)
          在java.net.URLClassLoader $ 1.run(未知来源)
          at java.security.AccessController.doPrivileged(Native Method)
          在java.net.URLClassLoader.findClass(未知来源)
          在java.lang.ClassLoader.loadClass(未知来源)
          在java.lang.ClassLoader.loadClass(未知来源)
          ......还有6个

但我把所有jar放在同一目录下的commons-cli.jar logback-classic.jar logback-core.jar slf4j-api.jar。

这里的清单:

  

清单 - 版本:1.0
  Ant-Version:Apache Ant 1.8.2
  创建者:1.6.0_23-b23(Sun Microsystems Inc.)
  实施 - 供应商:www.xuggle.com
  实现 - 标题:xuggle-xuggler
  实施 - 版本: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
  Class-Path:commons-cli.jar logback-classic.jar logback-core.jar slf4j-api.jar

所以,jar是可见的,不包括在类路径中的xuggle-xuggler.jar中......所以我不明白......

1 个答案:

答案 0 :(得分:0)

引用oracle documentation regarding the Manifest file

  

警告:文本文件必须以新行或回车结束。   如果它不以a结尾,则不会正确解析最后一行   新线或回车。