【问题标题】:NoClassDefFoundError: org/dom4j/io/SAXReaderNoClassDefFoundError: org/dom4j/io/SAXReader
【发布时间】:2015-06-03 06:22:16
【问题描述】:

我目前已导入以下内容

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

我在 BATCH file 的帮助下运行该程序,但它抛出了以下 errors -

C:\AISHU\WEB SERVICES>java  -jar webservices.jar
C:\AISHU\TEST FOLDER\formteest\fulltestxsd.xsd
Exception in thread "main" java.lang.NoClassDefFoundError:org/dom4j/io/SAXReader
        at XsdToXmlActual.main(XsdToXmlActual.java:29)
Caused by: java.lang.ClassNotFoundException: org.dom4j.io.SAXReader
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 1 more

C:\AISHU\WEB SERVICES>pause
Press any key to continue . . .

但是当我在 Eclipse 中运行它时,它运行得非常好。我在配置构建路径时将其添加为 external JAR 。所以,在 .classpath file 的位置已经存在。

<classpathentry kind="lib" path="C:/Users/Aishu/Downloads/dom4j-1.6.1.jar"/>
<classpathentry kind="lib" path="C:/Users/Aishu/Downloads/jaxen-1.1-beta-6.jar"/>

我已尝试重新安装 dom4j,但仍会导致相同的错误。我已经坚持了几个小时,非常感谢任何帮助。

【问题讨论】:

  • jar 文件的清单是什么样的,与您的webservices.jar 文件相关的库 jar 文件在哪里?
  • Manifest - `Manifest-Version: 1.0 Main-Class: XsdToXmlActual`
  • lib JAR 文件位于 webservices.jar 所在的文件夹之外
  • 对,所以你的 jar 文件清单应该有类路径条目...
  • 但是.classpath 文件有类路径条目还不够吗?所以,你的意思是,如果我将我的 jar 文件(dom4j 和 jaxen)存储在同一个文件夹中,它应该可以工作吗?

标签: java eclipse batch-file jar dom4j


【解决方案1】:

当您使用-jar 选项运行程序时,您将其作为executable jar 运行。在这种情况下,解析类路径的规则是不同的。 Java 将忽略-cp-classpath 选项以及CLASSPATH 环境变量,它只会查看jar 清单文件中定义的类路径。

您必须将必要的 jar 文件放在清单文件的类路径中。清单文件应如下所示:

Manifest-Version: 1.0
Main-Class: XsdToXmlActual
Class-Path: dom4j-1.6.1.jar jaxen-1.1-beta-6.jar

把这两个jar文件和你自己的jar文件放在同一个目录下,然后用-jar选项运行你自己的jar文件:

java -jar webservices.jar

见:Adding Classes to the JAR File's Classpath

【讨论】:

  • 非常感谢您解释为什么它以前不起作用。我的问题得到了解决,我终于明白为什么错误一直弹出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-19
  • 2017-08-08
  • 1970-01-01
  • 1970-01-01
  • 2010-10-07
  • 1970-01-01
  • 2012-10-07
相关资源
最近更新 更多