2011-08-16 48 views
1

我明白這個問題不能是更多的初學者,但我很難掌握爲什麼它不工作。 Apache Xerces-J帶有一個二進制發行版,我相信我們很多人都使用它。在這,還有所有的庫瓶和樣品罐dom.Writer成爲其中的一個我試圖運行:關於運行xerces的類路徑錯誤java的dom.Writer()程序

LICENSE       NOTICE      resolver.jar 
LICENSE-SAX.html    NOTICE.resolver.txt   samples/ 
LICENSE.DOM-documentation.html NOTICE.serializer.txt  serializer.jar 
LICENSE.DOM-software.html  Readme.html     xercesImpl.jar 
LICENSE.resolver.txt   data/      xercesSamples.jar 
LICENSE.serializer.txt   docs/      xml-apis.jar 

我的理解是,Java的默認類路徑將首先搜索當前direcotry,所以如果我跑

java dom.Writer

在該目錄,那麼它應該工作......不應該嗎?但是沒有,然後我嘗試了一些不同的方式來給類路徑,包括java6的通配符,沒有任何作用。

所以我知道xercesSamples.jar包含dom.Writer,但我無法弄清楚如何運行它..傻,嗯?有人請賜教。

的錯誤信息是這樣的:

Exception in thread "main" java.lang.NoClassDefFoundError: dom/Writer 
Caused by: java.lang.ClassNotFoundException: dom.Writer 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 

感謝

奧利弗

回答

2

在類路徑中包含xercesSamples.jar。 Jars必須在classpath中明確指定。

java -cp xercesSamples.jar:. dom.Writer 
0

@Kal說的是正確的答案。然而,元回答,是你爲什麼首先使用xerces?任何最近的jvm都帶有內置的xml DOM api實現。除非您需要某些特定的xerces功能,否則請堅持內置的實現。

+0

我推測你正在談論JAXP api ...我正在關注一個書籍示例,使用dom.Writer作爲一個簡單的命令程序來驗證XML,只是認爲它很方便。 thx – Oliver

+0

@Oliver - 沒問題,只是不希望你用一個相當過時的/過時的庫來避免不必要的路徑。 – jtahlborn