我在Maven中创建了一个应用程序,它是一个完整的jar,可以运行在大多数平台上(Windows,Unix,某些Mac)但不适用于Mac Lion / 10.6,但没有错误
java –jar jumbo-converters-crystal-cif-0.3-SNAPSHOT-jar-with-dependencies.jar 0151.cif 0151.cml
Exception in thread "main" java.lang.NoClassDefFoundError: ?jar
Caused by: java.lang.ClassNotFoundException: ?jar
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
更新:MANIFEST.MF包含:
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: pm286
Build-Jdk: 1.6.0_24
Main-Class: org.xmlcml.cml.converters.cif.CIF2CMLConverter
解决方案:@Charlie是对的。这个错误发生在一个类中。大多数代表都没有问题。 “罪魁祸首”是Powerpoint。我被要求将我的材料作为Powerpoint(不是我的常规练习)提供,并且已经“帮助”将HYPHEN-MINUS(U + 002D)转换为EN_DASH。大多数代表都正常打字,但有些代表剪掉并粘贴了腐败的命令。
答案 0 :(得分:3)
问题是您用来执行的命令
java –jar jumbo-converters-crystal-cif-0.3-SNAPSHOT-jar-with-dependencies.jar 0151.cif 0151.cml
错了......它应该是:
java -jar jumbo-converters-crystal-cif-0.3-SNAPSHOT-jar-with-dependencies.jar 0151.cif 0151.cml
(可能不是很明显,但第一个是jar
之前的'EN DASH' (U+2013),第二个是hyphen。