我理解这个问题不是更初学者,但我很难理解为什么它不起作用。 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)
由于
奥利弗
答案 0 :(得分:2)
在类路径中包含xercesSamples.jar。 Jars必须在类路径中明确指定。
java -cp xercesSamples.jar:. dom.Writer
答案 1 :(得分:0)
@Kal说的是正确答案。但是,元回答,为什么你首先使用xerces?任何最近的jvm都内置了一个xml DOM api实现。除非你需要一些特定的xerces功能,否则坚持使用内置的实现。