「JRuby」使ってみた
JRuby 使ってみたので、その時のメモ。
以下のことをやってみました。
1. jruby コマンドで .rb ファイルを実行する
2. Java から .rb ファイルを実行する
3. .rb ファイルから Java クラスを使用する
まずは、JRuby のインストールから。
以下のサイトから "jruby-bin-1.7.4.zip" をダウンロードして、適当なディレクトリに展開する。
・Downloads - JRuby.org
http://goo.gl/Fj9k3
展開したら、環境変数 PATH に "%JRUBY_HOME%\bin" を追記する。
※ %JRUBY_HOME% は展開したディレクトリ
上記でインストールは完了したので、以下、順にやっていく。
1. jruby コマンドで .rb ファイルを実行する
次のような .rb ファイル ( hello.rb ) を用意する。
puts "Hello JRuby !!"
以下のコマンドで実行すると、画面に "Hello JRuby !!" と表示される。
無事、実行できている。
jruby hello.rb Hello JRuby !!
2. Java から .rb ファイルを実行する
用意する Java ファイルは、以下のようなもの。
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import org.jruby.Ruby; import org.jruby.runtime.builtin.IRubyObject; public class CallRubySample { public static void main(String[] args) { Ruby ruby = Ruby.newInstance(); try { BufferedReader br = new BufferedReader(new FileReader("hello.rb")); StringBuffer sb = new StringBuffer(); String line; while ((line = br.readLine()) != null) { sb.append(line); } IRubyObject irobj = ruby.evalScriptlet(sb.toString()); System.out.println(irobj); } catch (IOException e) { e.printStackTrace(); } } }
hello.rb は CallRubySample.java と同じディレクトリにおいてあげてる。
クラスパス設定して、コンパイル、実行すると、以下の結果が返ってくる。
無事、実行できてますね。
javac -cp .;%JRUBY_HOME%\lib\jruby.jar Sample.java java -cp .;%JRUBY_HOME%\lib\jruby.jar Sample Hello JRuby !!
3. .rb ファイルから Java クラスを使用する
次のような .rb ファイル ( CallJavaSample.rb ) を用意する。
require 'java' java_import 'Sample' instance = Sample.new puts instance.hello() puts instance.hello2("uga") puts instance.add(1, 2)
呼び出される Java クラスも用意する。
あわせてコンパイルもしておく。
public class Sample { public String hello() { return "Hello hoge !!"; } public String hello2(String name) { return "Hello " + name + " !!"; } public int add(int a, int b) { return a + b; } }
上記の準備が終わったら、以下のコマンドで .rb ファイルを実行する。
無事、実行できているようです。
jruby CallJavaSample.rb Hello hoge !! Hello uga !! 3
駆け足でしたが、以上です。