我目前已导入以下内容
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
我在 BATCH file
的帮助下运行该程序,但它正在抛出以下 errors
-
C:\AISHU\WEB SERVICES>java -jar webservices.jar
C:\AISHU\TEST FOLDER\formteest\fulltestxsd.xsd
Exception in thread "main" java.lang.NoClassDefFoundError:org/dom4j/io/SAXReader
at XsdToXmlActual.main(XsdToXmlActual.java:29)
Caused by: java.lang.ClassNotFoundException: org.dom4j.io.SAXReader
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)
... 1 more
C:\AISHU\WEB SERVICES>pause
Press any key to continue . . .
但是当我在 Eclipse
中运行它时,它的工作正常。我在配置构建路径时将其添加为 external JAR
。因此,在 .classpath file
已经存在的位置。
<classpathentry kind="lib" path="C:/Users/Aishu/Downloads/dom4j-1.6.1.jar"/>
<classpathentry kind="lib" path="C:/Users/Aishu/Downloads/jaxen-1.1-beta-6.jar"/>
我已尝试重新安装 dom4j
,但仍会导致同样的错误。我已经坚持了几个小时,非常感谢任何帮助。
答案 0 :(得分:2)
使用-jar
选项运行程序时,将其作为executable jar运行。在这种情况下,解析类路径的规则是不同的。 Java将忽略-cp
和-classpath
选项以及CLASSPATH
环境变量,它只会查看jar清单文件中定义的类路径。
您必须将必要的jar文件放在清单文件的类路径中。清单文件应如下所示:
Manifest-Version: 1.0
Main-Class: XsdToXmlActual
Class-Path: dom4j-1.6.1.jar jaxen-1.1-beta-6.jar
将两个jar文件放在与您自己的jar文件相同的目录中,然后使用-jar
选项运行您自己的jar文件:
java -jar webservices.jar