jrubyにはgemも付属しているが、パス設定によってはgemコマンドを呼ぶとMatzRubyのものが呼ばれてしまう。
$ jruby -S gem search hogehoge
とするとjrubyのgemが呼ばれる。
もしくは jgem コマンドを使う。
$ jgem
最近は、rvmやpikなとのツールでruby環境を切り替えて使うのが常識
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クラスの設置場所は
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風の記述になっている点に注意
include Java include_class "JRubyTest" j = JRubyTest.new j.hoge = "hoge?" p j.hoge j.append_string("fuga?") p j.to_s