つい最近わかったことがありました。 A. Ant実行スクリプトは ANT_HOME の Ant を優先して実行 B. 1.7.x 想定の環境で 1.8.x だと NoClassDefError -> org/apache/xerces/dom/DocumentImpl -> JDBCタスクのみ発生 DBFluteは Ant を内部で保持しています。 DBFlute内部の Ant 実行スクリプトを実行します。 なので、PC上で ANT_HOME を設定していない環境であれば、 特に問題なくDBFlute内部の Ant が実行されます。 ですが、PC上で ANT_HOME を設定されている場合は、 その ANT_HOME が参照する Ant が実行されます。 これが "A" の話で、これだけならほとんどの場合問題は ないのですが(Antの仕様的には当然のことではるし)、 これに加えて "B" の話が絡んで例外となるケースがあります。 実は "B" はよくわかっていません。 1.7.x を想定して作られたDBFluteの処理が 1.8.x と マッチしていないのか、1.7.x の実行スクリプトで実行するの がよくないのか...などなど。そこまで突っ込んでいません。 追記:以前も同じ話がありました (Xercesの有無) http://d.hatena.ne.jp/jflute/20080907#c1221050635 ですが、とりあえず DBFlute で、実行直前に一時的に ANT_HOME を上書きして必ず DBFlute 内部の Ant が 利用されるようにしました。PC側で ANT_HOME をどう設定 しようと影響されることはありません。 ということで、JDBCタスクでこの例外、 NoClassDefError org/apache/xerces/dom/DocumentImpl が発生して「なんだろう?」と直面された方は、 DBFlute-0.9.7.9-RC1 をご利用下さい。 この件は、こちらの方のブログでの フィードバックによって判明しました。 (ありがとうございました) // メモがわり http://d.hatena.ne.jp/sakube1/20110108 @DBFlute, Java, DBFlute.NET, C#