Какие зависимости использовать для APACHE ODF TOOLKIT (INCUBATING)

Я пытаюсь загрузить файл.ods с кодом:

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

Я добавил оператор импорта, чтобы показать, какой пакет я использую.

Однако я продолжаю получать java.lang.NoClassDefFoundError. Я пытался добавить много разных библиотек. На данный момент у меня есть эти библиотеки в моем пути сборки eclipse: библиотеки в моем пути сборки eclipse

И получаю эту ошибку

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, будет весьма уместным.

1 ответ

Решение

Вы должны добавить commons-validator-1.5.0.jar, jena-core-2.11.2.jar, jena-iri-1.0.2.jar по крайней мере.

Полные банки зависимостей могут быть получены через maven команда mvn dependency:tree,

org.apache.odftoolkit:odfdom-Java: баночка:0.8.11-Инкубация
+- org.apache.odftoolkit:taglets:jar:0.8.11-инкубация: компиляция
|  \- com.sun:tools:jar:1.7.0:system
+- xerces:xercesImpl:jar:2.9.1: компилировать
+- xml-apis:xml-apis:jar:1.3.04: компилировать
+- org.apache.jena:jena-core:jar:2.11.2:compile
|  +- org.slf4j:slf4j-api:jar:1.7.6: компилировать
|  +- org.apache.jena:jena-iri:jar:1.0.2: скомпилировать
|  +- org.slf4j:slf4j-log4j12:jar:1.7.6: компилировать
|  \- log4j:log4j:jar:1.2.17: компилировать
+- net.rootdev:java-rdfa:jar:0.4.2: компилировать
\- commons-validator:commons-validator:jar:1.5.0:compile
   +- commons-beanutils:commons-beanutils:jar:1.9.2: компилировать
   + - comms-digester:commons-digester:jar:1.8.1: компилировать
   + - commons-logging: commons-logging: jar: 1.2: компилировать
   \- commons-collection: commons-collection:jar:3.2.2: компилировать

Если ты не хочешь получить java.lang.NoClassDefFoundError в будущем вы также должны добавить эти банки. Их можно найти в odfvalidator-1.1.8-инкубационный.war odftoolkit-0.6.2-incubating-bin.zip.

Другие вопросы по тегам