我尝试执行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中......所以我不明白......
答案 0 :(得分:0)
引用oracle documentation regarding the Manifest file:
警告:文本文件必须以新行或回车结束。 如果它不以a结尾,则不会正确解析最后一行 新线或回车。