From: Eiji-usagi-MATSUmoto Date: 1997-09-19T10:45:55+09:00 Subject: [ruby-list:4430] Re: ruby seminar うさぎです。 shugo@po.aianet.ne.jp (MAEDA Shugo) said: > おお、実は今西田の講義を受けています。 その講義、受けてみたいです:-) > Java Native InterfaceとReflection APIを使って書きました。 > Cだけでは難しそうだったので、少しJavaでもコードを書いています。 なるほど。私が想像していたのとちょっと違いました。 既にあるjavaクラスを取り込んで、JNIとRefrectionを使うんですね。 そーかー。こういう手でもいいのかぁ。 ちなみに私が想像していたのは、rubyソース中にjavaソースを混入さ せるイメージだったんです。つまりあらかじめPerson.classというも のを用意せずに、いきなしrubyの中でjavaを書いてしまうみたいな。 #邪悪かしらん 確かtclのjava連携はそんな感じだったと思うんです。うそかもしれな いけど。 > とりあえず動くようになったので、 ぱわーありますねぇ。見習いたいものだ。 で、さっそくもらってきて試してみたんですが、残念ながらいくつかの 問題があって、FreeBSDのJDK1.1portでは動作しませんでした。 ・ jni.hのJDK1_1InitArgsの定義が違う (quick hackした) ・ libjavaが、staticしかない (static linkにして回避) まではよかったんですが、 gcc -g -O -I. main.o ext/extinit.o ext/java/java.o libruby.a -lcrypt -lm -L/usr/local/java/jdk1.1/lib/i386/green_threads -ljava -o ruby gc.c:713: Definition of symbol `_gc' (multiply defined) /usr/local/java/jdk1.1/lib/i386/green_threads/libjava.a: Definition of symbol `_gc' (multiply defined) *** Error code 1 ということで、「gc」が重なっちゃってるんですね。まこっちも quick hackしてもよかったんですが、とりあえず止めました。 > もう一つJPIというのもあったんですが、そちらはソースが > ないみたいですね。 そのうち公開するみたいな話じゃなかったかなぁ。 > でも現状ではまだ配列を扱えないのと、Javaのイベントモデルに対応 > できないという問題があるので、あまり使えないです(^^; んと、rubyからjavaを使えるようにしたいというのは、 ・ swingなんかが使えると嬉しい。 ・ tk以外のGUIがあってもいいじゃないか ・ やってみたいから:-) というのが考えられますね。前田さんはどれかなぁ(やっぱり3番?) -- うさぎ