使用 Apache ODF 工具包获取 java.lang.NoClassDefFoundError: org/apache/xerces/dom/ElementNSImpl
Posted
技术标签:
【中文标题】使用 Apache ODF 工具包获取 java.lang.NoClassDefFoundError: org/apache/xerces/dom/ElementNSImpl【英文标题】:Getting java.lang.NoClassDefFoundError: org/apache/xerces/dom/ElementNSImpl with Apache ODF Toolkit 【发布时间】:2013-08-09 13:35:35 【问题描述】:我正在尝试使用Apache ODF Toolkit
读取ods
文件。我在尝试使用以下代码加载电子表格时收到java.lang.NoClassDefFoundError
错误-
SpreadsheetDocument data = SpreadsheetDocument.loadDocument(file);
下面是错误跟踪-
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xerces/dom/ElementNSImpl
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
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)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
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)
at test.read.ODSFile.ReadODS.main(ReadODS.java:33)
Caused by: java.lang.ClassNotFoundException: org.apache.xerces.dom.ElementNSImpl
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
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)
... 25 more
下面是项目结构,它显示了类路径-
是否缺少任何依赖项?
【问题讨论】:
【参考方案1】:您的代码似乎找不到该类: 引起:java.lang.ClassNotFoundException: org.apache.xerces.dom.ElementNSImpl
来自ODF Toolkit
注意:ODFDOM 需要 Apache Xerces。 jar 文件 xercesImpl.jar 也必须存在于 odfxsltrunner.jar 文件旁边的文件夹 lib 中,或者它必须位于类路径中。 ODF XSLT Runner NetBeans 项目在运行时类路径中包含对 xersesImpl.jar 的引用,必须在签出项目后对其进行调整。
【讨论】:
以上是关于使用 Apache ODF 工具包获取 java.lang.NoClassDefFoundError: org/apache/xerces/dom/ElementNSImpl的主要内容,如果未能解决你的问题,请参考以下文章