- - PR -
ant について
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2002-01-25 09:57
javaタスクにfork="true"をつけて見てはいかがですか。
<java classname="chkxml" fork="true"> | ||||
|
投稿日時: 2002-01-25 10:25
まさに、それを今試していました。
antで使っているXMLのパーサと別のパーサを使っていたので fork="yes" だけでは、結局駄目でした。(先のエラーだけは回避できましたが、別の問題(これは当方固有の問題)が発生していました。) java.class.path に ant で使用しているパーサのjarが含まれていてそれが先に呼び出されるため別のエラーとなってしまっていました。 以下のようにして、java.ext.dirs に使用したいXMLパーサのjarをいれることで、とりあえず正常に動いています。
<java>タスクには<classpath>を設定しているのに、何故antのライブラリが含まれて動作してしまうのでしょう?(しかも、別JVMなのに。同じJVMならまだ分かるが…) もっと、きれいな方法があればよいのですが、とりあえずはこれで問題ないのでこのままいこうと思います。 P.S. それにしても、わかりにくいエラーメッセージだ。。。 | ||||
|
投稿日時: 2002-01-25 11:30
antに-debug(や-verbose)をつけて実行したとき、コンソールに次のように出力されますが、出力されたクラスパスは正しいですか? [java] Forking C:jdk1.3\jre\bin\java.exe -classpath .... | ||||
|
投稿日時: 2002-01-25 11:59
java.class.path は、ant に -debug オプションをつけたときのログを見て確認しています。
ご指摘の javaタスクのログを確認すると、-classpath には build.xml で指定したものだけがありました。もちろん、ここには当方で使用している富士通のXMLライブラリを指定しています。(antのライブラリは含まれていませんでした。) 先の投稿に書いたように java.ext.dirs に富士通のXMLライブラリを入れると動作しているので、-classpath に設定したライブラリより先に ant のライブラリが読みこまれてしまったのかなと考えました。(エラーの内容が「org.xml.sax.SAXException: SAX2 driver class com.fujitsu.xml.parser.XMLReader not found」なので、何かしらのXMLパーサがエラーを返しています。) という状況なのですが、どう思われますでしょうか? | ||||
|
投稿日時: 2002-01-25 12:44
すいません、もうひとつだけ質問させてください。
クラスパスの指定方法は、次のどちらですか? 1) <java classpathref=".."> 2) <java ..> <classpath> ... </classpath> </java> ふうたさんの投稿を見ると、2)のような印象を受けるのですが、1)も試してみる価値があると思います。 | ||||
|
投稿日時: 2002-01-25 14:14
おっしゃる通り 2)の方法でした。
1)もやってみましたが、全く同じ結果です。 ちなみに何故、試す価値があったのでしょうか? <classpath> は、debugオプション時の javaタスクでちゃんと表示されていれば、XMLをどういうふうに書いても同じなのかなと思ったりしたのですが? | ||||
|
投稿日時: 2002-01-25 14:46
>ちなみに何故、試す価値があったのでしょうか?
ふうたさん、ごめんなさい。 もし、これが仕様なら世界中の人が同じ問題で困っているはずだと思い、apacheのバグデータベースとgoogleで片っ端から調べてみましたが、私には同じ問題は見つかりませんでした。 だとすれば、単に使い方が間違っているのではないかと疑ったわけです。 実際に1)の使い方はないかと、同じくgoogleで探してみたところ、そのような使い方をした例(fork="yes"とclasspathrefの併用)例が見つかったので、もしかしたらforkの場合に適用されるクラスパスの指定の方法が違うのでは、と思ったわけです。 失礼しました。 | ||||
|
投稿日時: 2002-01-25 15:01
ふうたさん、
別のアイディアです。 これもgoogleから拾ってきたものです。 <java classname="chkxml" fork="yes" jvmargs="-classpath ${java.class.path}"> [ メッセージ編集済み 編集者: miki 編集日時 2002-01-25 15:43 ] | ||||
