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