jruby
JRuby
gem
jrubyにはgemも付属しているが、パス設定によってはgemコマンドを呼ぶとMatzRubyのものが呼ばれてしまう。
$ jruby -S gem search hogehoge
とするとjrubyのgemが呼ばれる。
もしくは jgem コマンドを使う。
$ jgem
最近は、rvmやpikなとのツールでruby環境を切り替えて使うのが常識
Javaクラスを利用する
JavaのHashMapを呼び出す。ハッシュへの追加、取り出しもRuby風の記述が可能になっている。
include Java include_class "java.util.HashMap" h = HashMap.new h.put "a", "hoge" h.put "b", 4 h["c"] = "fuga" p h.get("a") p h["b"] p h.get("c") p h.get("d")
自作クラスを使ってみる
自作クラスでも使い方は同じ。Javaクラスの設置場所は
- カレントディレクトリ
- CLASS_PATH環境変数で示されているクラスパスのどこか
- JRuby HOMEのlib
public class JRubyTest { private String hoge; public String getHoge() { return hoge; } public void setHoge(String hoge) { this.hoge = hoge; } public String toString() { return "jruby test" + this.hoge; } public void appendString(String str) { if (this.hoge == null) { setHoge(str); } else { this.hoge += str; } } }
Ruby側で呼び出す。いくつかのメソッド呼び出しがRuby風の記述になっている点に注意
- コンストラクタ
- ゲッター
- セッター
- 複数単語からなるメソッド名(Java:大文字区切り、Ruby:アンダースコア区切り)
- toStringメソッド
include Java include_class "JRubyTest" j = JRubyTest.new j.hoge = "hoge?" p j.hoge j.append_string("fuga?") p j.to_s
jruby.txt · 最終更新: 2011/04/20 01:27 by nullpon