RubyJavaBridge?(RJB)とは †RubyからJavaの機能を呼び出すライブラリです。artonさん作。→本家
RJB Plus †RJBの機能をもっと便利に呼び出すために、追加のメソッドなどを定義したRubyスクリプト。まだろくにテストしてないのでバグがあるかも。 以下の機能を追加しました。使い方はソース中のコメントやswt_sample.rbを見てください。
RJB + SWT †RJBに触ったのは、RubyでSWTを使えないかなぁ、と思ったからです。cygwinとmswin32でちょっと試した範囲では、問題なく使えてます。 Mac OS Xでも動きました。あっさり成功してびっくり。 サンプル †swt_sample.rb ボタンを押すとメッセージボックスが出るサンプル。 サンプルを動かすのに必要なもの †
対応するJavaのサンプル †Javaでこんなmain()にだらだら書いたら怒られるでしょうけど…。 注意点 †Java側から呼ばれたRuby側の処理(上のサンプルのwidgetSelectedの部分とか)で例外が起きると、黙殺されるようです。対応策は、なんか怪しいと思ったらrubyに-dオプションをつけてみるぐらいでしょうか。ちなみに-dをつけると、rjbplus.rbの中でNoClassDefFoundError?が起きてるのが見えますが、こっちは無視してください。 あと、Javaのメインスレッド以外からRuby側の処理が呼ばれるとまずいらしいです。SWTのイベントハンドラはメインスレッドで呼ばれるっぽいのでその点は大丈夫…かな? 逆にRubyの別スレッドからRJBを呼んだりするとどうなるのかは知りません。問題ないのかな。 コメント † |