Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ClassNotFoundException:org.docx4j.openpackaging.exceptions.docx4jeException_Java_Intellij Idea_Docx4j - Fatal编程技术网

Java ClassNotFoundException:org.docx4j.openpackaging.exceptions.docx4jeException

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

我们又来了。我的头在电脑上敲了几个小时,我不知道该怎么办。在本地PC上,我从Intellij Idea运行java代码。它起作用了。现在我必须创建
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
出于某种原因,Midnight Commander在第一次尝试时无法打开它们(按enter键),并报告“extfs存档不一致”。这个问题由罐子解决了

# 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。所以我解决了这个问题。我赢了)你让我看到了正确的道路。谢谢