1

我正在尝试使用代码加载 .ods 文件:

import org.odftoolkit.simple.SpreadsheetDocument;
SpreadsheetDocument data = SpreadsheetDocument.loadDocument(f);

我添加了 import 语句来显示我正在使用哪个包。

但是我不断收到 java.lang.NoClassDefFoundError。我尝试添加许多不同的库。目前我的eclipse构建路径中有这些库:libraries in my eclipse build path

我收到了这个错误

Exception in thread "main" java.lang.NoClassDefFoundError: com/hp/hpl/jena/rdf/model/RDFNode
    at org.odftoolkit.odfdom.pkg.OdfFileDom.initialize(OdfFileDom.java:215)
    at org.odftoolkit.odfdom.pkg.manifest.OdfManifestDom.initialize(OdfManifestDom.java:74)
    at org.odftoolkit.odfdom.pkg.OdfFileDom.<init>(OdfFileDom.java:132)
    at org.odftoolkit.odfdom.pkg.manifest.OdfManifestDom.<init>(OdfManifestDom.java:63)
    at org.odftoolkit.odfdom.pkg.OdfFileDom.newFileDom(OdfFileDom.java:189)
    at org.odftoolkit.odfdom.pkg.OdfPackage.parseManifest(OdfPackage.java:1187)
    at org.odftoolkit.odfdom.pkg.OdfPackage.readZip(OdfPackage.java:454)
    at org.odftoolkit.odfdom.pkg.OdfPackage.initializeZip(OdfPackage.java:425)
    at org.odftoolkit.odfdom.pkg.OdfPackage.<init>(OdfPackage.java:256)
    at org.odftoolkit.odfdom.pkg.OdfPackage.loadPackage(OdfPackage.java:318)
    at org.odftoolkit.simple.Document.loadDocument(Document.java:319)
    at org.odftoolkit.simple.SpreadsheetDocument.loadDocument(SpreadsheetDocument.java:203)
    at FirstLoadComponent.main(FirstLoadComponent.java:11)
Caused by: java.lang.ClassNotFoundException: com.hp.hpl.jena.rdf.model.RDFNode
    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)
    ... 13 more

任何关于如何让我的代码运行的建议或任何替代我对 .ods 文件进行简单读写的建议都会非常受欢迎。

4

1 回答 1

1

至少,您必须添加commons-validator-1.5.0.jar, 。jena-core-2.11.2.jarjena-iri-1.0.2.jar

完整的依赖 jar 可以通过mavencommand获得mvn dependency:tree

org.apache.odftoolkit:odfdom-java:jar:0.8.11-incubating
+- org.apache.odftoolkit:taglets:jar:0.8.11-incubating:compile
| \- com.sun:tools:jar:1.7.0:system
+- xerces:xercesImpl:jar:2.9.1:compile
+- xml-apis:xml-apis:jar:1.3.04:compile
+- org.apache.jena:jena-core:jar:2.11.2:compile
| +- org.slf4j:slf4j-api:jar:1.7.6:compile
| +- org.apache.jena:jena-iri:jar:1.0.2:compile
| +- org.slf4j:slf4j-log4j12:jar:1.7.6:compile
| \- log4j:log4j:jar:1.2.17:compile
+- net.rootdev:java-rdfa:jar:0.4.2:compile
\- commons-validator:commons-validator:jar:1.5.0:compile
   +- commons-beanutils:commons-beanutils:jar:1.9.2:compile
   +- commons-digester:commons-digester:jar:1.8.1:compile
   +- commons-logging:commons-logging:jar:1.2:compile
   \- commons-collections:commons-collections:jar:3.2.2:compile

如果你以后不想得到java.lang.NoClassDefFoundError,你也应该添加这些罐子。它们可以在odftoolkit-0.6.2-incubating-bin.zip 的 odfvalidator-1.1.8-incubating.war找到

于 2017-06-04T13:33:17.323 回答