运行xerces java的dom.Writer()程序时出现classpath错误

时间:2011-08-16 13:54:33

标签: java classpath

我理解这个问题不是更初学者,但我很难理解为什么它不起作用。 Apache Xerces-J附带了一个二进制发行版,我相信很多人都会使用它。在其中,所有的库罐和样品罐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的默认类路径将首先搜索当前的目标,所以如果我运行

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 个答案:

答案 0 :(得分:2)

在类路径中包含xercesSamples.jar。 Jars必须在类路径中明确指定。

java -cp xercesSamples.jar:. dom.Writer

答案 1 :(得分:0)

@Kal说的是正确答案。但是,元回答,为什么你首先使用xerces?任何最近的jvm都内置了一个xml DOM api实现。除非你需要一些特定的xerces功能,否则坚持使用内置的实现。