1

我有一个在 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。大多数代表正常键入此内容,但有些代表剪切并粘贴了损坏的命令。

4

1 回答 1

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

(It might not be apparent but the first one is an 'EN DASH' (U+2013) before the jar and the second is a hyphen.)

于 2013-02-01T03:06:01.720 回答