Java ClassNotFoundException:org.docx4j.openpackaging.exceptions.docx4jeException
我们又来了。我的头在电脑上敲了几个小时,我不知道该怎么办。在本地PC上,我从Intellij Idea运行java代码。它起作用了。现在我必须创建Java ClassNotFoundException:org.docx4j.openpackaging.exceptions.docx4jeException,java,intellij-idea,docx4j,Java,Intellij Idea,Docx4j,我们又来了。我的头在电脑上敲了几个小时,我不知道该怎么办。在本地PC上,我从Intellij Idea运行java代码。它起作用了。现在我必须创建jar文件,使其能够在某个远程服务器上使用。我在项目设置中添加了我的程序需要的所有库和JAR(在工件部分添加了库)。但它在远程服务器上运行不起作用。我的程序需要什么: import org.docx4j.dml.CTBlip; import org.docx4j.jaxb.XPathBinderAssociationIsPartialException
jar
文件,使其能够在某个远程服务器上使用。我在项目设置中添加了我的程序需要的所有库和JAR(在工件部分添加了库)。但它在远程服务器上运行不起作用。我的程序需要什么:
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的问题是什么呢?我遗漏了什么?org.docx4j.openpackaging.exceptions.docx4jeexception在docx4j.jar文件中,因此请确保(以及所有docx4j的依赖项)在您的类路径上。当类加载器未加载原始docx4j jar时,我面临类似的问题 我试过这些:
- docx4j-3.1.0.jar
- docx4j-3.2.1.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位1.7.079,Linux Mint 17。查看生成的jar。它是否包含有关在何处查找org.docx4j.openpackaging.exceptions.docx4jeexception类的任何信息?最有可能的问题是您创建的jar。最简单的验证方法是提取jar并检查所需的库是否存在。是的,jar文件大约为40Mb,所有库都在其中。谢谢。我的梦想是让jar将所有外部jar包含在一个文件中,但现在这个梦想破灭了。我解决不了。现在避免这个错误的一种方法似乎是使用清单描述的外部jar路径创建jar。所以我解决了这个问题。我赢了)你让我看到了正确的道路。谢谢