2015-06-03 36 views
0

我目前進口下列NoClassDefFoundError的:組織/ dom4j中/ IO/SAXReader依靠

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,但仍然導致了同樣的error.I've停留在這幾個小時,任何幫助表示高度讚賞。

+1

什麼的jar文件看起來像清單,並在在關係庫jar文件到你的'webservices.jar'文件? –

+0

Manifest - 'Manifest-Version:1.0 Main-Class:XsdToXmlActual' –

+0

lib JAR文件位於存在webservices.jar的文件夾之外 –

回答

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 

見:Adding Classes to the JAR File's Classpath

+0

非常感謝您解釋爲什麼它以前不工作。我的問題解決了,我終於明白爲什麼這個錯誤不斷出現。 –

相關問題