Linuxサーバでxmlをhtml変換するのにxalanを使ってみたのですが、コマンドの実行時でこのエラーが表示されて苦労しました。
[root@localhost ~]# java org.apache.xalan.xslt.Process -in sample.xml -xsl sample.xsl -out output.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(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)
Could not find the main class: org.apache.xalan.xslt.Process. Program will exit.
PATHが通ってないので怒られているらしい。
だけれどもxalanの実行ディレクトリにはPATHは通っている。
色々調べた結果、結局実行ファイルのxalan.jarそのものに「クラスパス」を通さないとならないということを知りました。
説明に「クラスパス」に通す、とあったのですが、私はjavaは全く明るくないため、実行フォルダだけでいいのかなと思っていたのが敗因。
以下の用にクラスパスをセットして再度実行したところ、無事に成功。
[root@localhost ~]# CLASSPATH=/usr/local/apache2/htdocs/todoxweb/xalan/xalan.jar
[root@localhost ~]# export CLASSPATH=$CLASSPATH:.
[root@localhost ~]# echo $CLASSPATH
/usr/local/apache2/htdocs/todoxweb/xalan/xalan.jar:.
あるいはコマンド実行時にクラスパスまで指定する。
[root@localhost ~]# java -classpath /usr/share/xalan/xalan.jar org.apache.xalan.xslt.Process -in sample.xml -xsl sample.xsl -out output.html
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。