GeoTools には sun.jdbc.odbc.ee.DataSource を継承しているクラスがあり、このクラスは Mac OS X にとっては地雷
例えばこのクラス
http://www.koders.com/java/fid241B86AE7B9D4C1996AACAC7004A12990A4EA4F5.aspx
public class AccessDataSource extends sun.jdbc.odbc.ee.DataSource implements DataSource {
実際、
jirb でこのクラスを import しようとすると jirb もろとも落ちます。
$ jirb irb(main):001:0> require 'java' => true irb(main):002:0> import org.geotools.referencing.factory.epsg.AccessDataSource Exception in thread "main" java.lang.NoClassDefFoundError: sun/jdbc/odbc/ee/DataSource at java.lang.ClassLoader.defineClass1(Native Method) (中略) at EVAL180226.__file__(EVAL180226:13) at EVAL180226.run(EVAL180226) at org.jruby.Ruby.compileOrFallbackAndRun(Ruby.java:322) at org.jruby.Main.runInterpreter(Main.java:229) at org.jruby.Main.runInterpreter(Main.java:174) at org.jruby.Main.run(Main.java:120) at org.jruby.Main.main(Main.java:95) $
どうする?
とりあえず、Windows 版 JRE の rt.jar をクラスパスに入れる*1ことで、もう少し先で落ちるようにはなりました...。いろいろなデータベースへのアクセスを試すようなコードの一部だったようです。
この話題は、たぶん続きます。
*1:改変、逆コンパイル、リバースエンジニアリングには当たらないので、バイナリコードライセンス契約上問題ないと思っています。c.f. http://www.java.com/ja/download/license.jsp