• 締切済み

XMLを出力する時のエラー原因

以下のように実行したところエラーとなるのですが 何が原因でしょうか? C:\Documents and Settings\Administrator\デスクトップ\test>java Transform Sample. xml Sample1.xsl result.xml Exception in thread "main" javax.xml.transform.TransformerException: java.io.Fil eNotFoundException: file:\C:\Documents%20and%20Settings\Administrator\デスクトッ プ\test\result.xml (ファイル名、ディレクトリ名、またはボリューム ラベルの構文が 間違っています。) at org.apache.xalan.transformer.TransformerImpl.createResultContentHandl er(TransformerImpl.java:1146) at org.apache.xalan.transformer.TransformerImpl.createResultContentHandl er(TransformerImpl.java:1055) at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp l.java:1170) at Transform.main(Transform.java:16) Caused by: java.io.FileNotFoundException: file:\C:\Documents%20and%20Settings\Ad ministrator\デスクトップ\test\result.xml (ファイル名、ディレクトリ名、またはボリ ューム ラベルの構文が間違っています。) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(Unknown Source) at java.io.FileOutputStream.<init>(Unknown Source) at org.apache.xalan.transformer.TransformerImpl.createResultContentHandl er(TransformerImpl.java:1131) ... 3 more --------- java.io.FileNotFoundException: file:\C:\Documents%20and%20Settings\Administrator \デスクトップ\test\result.xml (ファイル名、ディレクトリ名、またはボリューム ラベ ルの構文が間違っています。) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(Unknown Source) at java.io.FileOutputStream.<init>(Unknown Source) at org.apache.xalan.transformer.TransformerImpl.createResultContentHandl er(TransformerImpl.java:1131) at org.apache.xalan.transformer.TransformerImpl.createResultContentHandl er(TransformerImpl.java:1055) at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp l.java:1170) at Transform.main(Transform.java:16) ***以下ソースです*** Sample.xml********************** <?xml version="1.0" encoding="Shift_JIS" ?> <cars> <car> <name>乗用車 </name> <price>100 </price> </car> </cars> Sample1.xsl********************** <?xml version="1.0" encoding="Shift_JIS" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" encoding="Shift_JIS"/> <!-- 文書 --> <xsl:template match="/"> <root> </root> </xsl:template> </xsl:stylesheet> Transform.java********************** import java.io.*; import javax.xml.transform.*; import javax.xml.transform.stream.*; public class Transform { public static void main( String args[] ) throws Exception { StreamSource in = new StreamSource(new File(args[0])); StreamSource ss = new StreamSource(new File(args[1])); StreamResult out = new StreamResult(new File(args[2])); TransformerFactory tff = TransformerFactory.newInstance(); Transformer tf = tff.newTransformer(ss); tf.transform(in, out); System.out.println(args[2]+"出力"); } }

みんなの回答

回答No.2

http://bugs.sun.com/view_bug.do?bug_id=5077403 未検証だけどこれっぽい臭いがします。 #1.5.0_09-b01とjdk: 1.5.0 b58 #のどっちが先かわからん。 #見るとしたらxalanの方であって,JDKのバージョン見ても意味なし?ひょっとして。 #見方教えてくれるとうれしいなっと(おぃ

nankurunaisa2006
質問者

お礼

ずばりでした。同じソースを別マシンに入れていた環境 jdk-1_5_0_14 で動かしたら動きました。 Many Thanks

nankurunaisa2006
質問者

補足

さらに考えたところ、 原因はクラスパスでした。 java -classpath . Transform Sample.xml Sample1.xsl a.xml でいった

  • auty
  • ベストアンサー率58% (284/486)
回答No.1

全くの想像ですが、 ・ jdkのバージョンかjavax.xml.transform.*.*のバージョンあたりが関係しているのではないでしょうか。 ・ 後ひとつ、環境変数Pathに設定されている順番が、適当なjdkまたはjreを優先していないとか。

nankurunaisa2006
質問者

お礼

回答有難うございます。 jdkのバージョンは以下のとおりです。問題ないかと思うのですが・・・ どこか変ですか? C:\Documents and Settings\Administrator>java -version java version "1.5.0_09" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_09-b01) Java HotSpot(TM) Client VM (build 1.5.0_09-b01, mixed mode, sharing) C:\Documents and Settings\Administrator>javac -version javac 1.5.0_09

関連するQ&A