无法让Xalan运行任何示例

时间:2011-11-19 18:19:05

标签: xslt xalan

我下载了Xalan-Java Version 2.7.1,将其解压缩,然后为java设置PATH,为xalan设置CLASSPATH

set path=%PATH%;c:\Program Files\Java\jre6\bin

set classpath=%CLASSPATH%;c:\Xalan\

(我也尝试仅为xalan.jar,xercesImpl.jar,xml-apis.jar设置类路径)

测试简单的Hello World示例(或任何其他示例)时:

java org.apache.xalan.xslt.Process -in hello.xml -xsl hello.xsl -out hello.html

我总是这样:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xalan/xslt
/Process
Caused by: java.lang.ClassNotFoundException: org.apache.xalan.xslt.Process
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        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)
Could not find the main class: org.apache.xalan.xslt.Process.  Program will exit

有什么问题?有人有想法吗?

感谢。

2 个答案:

答案 0 :(得分:5)

好的,这就是我做的工作,最后:

xalan.jar复制到c:\Program Files (x86)\Java\jre6\lib\
从命令行运行这样的文件:

java -classpath "c:\Program Files (x86)\Java\jre6\
lib\xalan.jar";"c:\xalan-j_2_7_1\serializer.jar" org.apache.xalan.xslt.Process -
in hello.xml -xsl hello.xsl

没有serializer.jar它不起作用!

答案 1 :(得分:1)

在所有情况下都不需要串行器。例如,如果您使用的是XSLT,那么就需要使用pipeDocument。

此错误指向未找到xalan.jar的“org.apache.xalan.xslt.Process”。重新检查您的类路径。排除hello.xml和hello.xsl以避免混淆水。如果你的类路径是正确的,那就单独使用

java org.apache.xalan.xslt.Process

将提供输出(Xalan-J命令行选项)。