ClassNotFoundException:org.docx4j.openpackaging.exceptions.Docx4JException

时间:2015-05-11 20:12:59

标签: java intellij-idea docx4j

所以我们再来一次。我的头在我的电脑上敲了几个小时,我无法弄清楚该做什么。在我的本地PC上,我运行来自 Intellij Idea 的java代码。有用。现在我必须创建jar文件才能在某些远程服务器上使用它。我在项目设置中添加了我的程序所需的所有库,jar(在Artifacts部分添加了库)。但它无法在远程服务器上运行。导入我的程序的需求是什么:

import org.docx4j.dml.CTBlip;
import org.docx4j.jaxb.XPathBinderAssociationIsPartialException;
import org.docx4j.openpackaging.exceptions.Docx4JException;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.openpackaging.parts.PartName;
import org.docx4j.openpackaging.parts.relationships.RelationshipsPart;
import org.docx4j.relationships.Relationship;

import javax.xml.bind.JAXBException;
import java.io.File;
import java.util.List;

错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/docx4j/openpackaging/exceptions/Docx4JException
Caused by: java.lang.ClassNotFoundException: org.docx4j.openpackaging.exceptions.Docx4JException
        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
Could not find the main class: Main. Program will exit.

创建jar的问题是什么?我错过了什么?

2 个答案:

答案 0 :(得分:1)

org.docx4j.openpackaging.exceptions.Docx4JException位于docx4j.jar文件中,因此请确保(以及所有docx4j的依赖项)位于类路径中。

答案 1 :(得分:1)

当原始的docx4j jar没有被类加载器加载时,我遇到了类似的问题。

我试过这些:

  • docx4j-3.1.0.jar
  • docx4j-3.2.1.jar

出于某种原因,午夜指挥官无法从第一次尝试打开它们(通过按下输入)并报告“不一致的extfs存档”。这个问题通过jar娱乐解决了

# run in a directory containing just single original docx4j jar file
unzip docx4j-3.2.1.jar
rm -r docx4j-3.2.1.jar
jar cf docx4j-3.2.1.jar *

现在新的jar在MC中打开没有问题(至少在我的情况下)并且它的类被加载并且java.lang.NoClassDefFoundError不再被抛出。

<强>更新

JIC,我刚检查了我使用的jar所属的JDK。

OpenJDK 64-Bit 1.7.0_79,Linux Mint 17。