2009年8月1日土曜日

JavaでRubyを実行する

Rubyというスクリプト言語をJava上で実行する方法をご紹介します。

まず、RubyのJava実装環境である、「JRuby」をインストールします。JRubyは以下からダウンロードしてください。

http://dist.codehaus.org/jruby/

上記のリンク先から最新のバージョンをダウンロードしてください。ここでは、「jruby-bin-1.1.5.zip」をダウンロードしました。

 JRubyのインストール

ダウンロードしたファイルを適当なところに解凍して、環境変数を設定します。


JRUBY_HOME=C:\ruby\jruby-1.1.5
PATH=%PATH%;%JRUBY_HOME%\bin

それでは、JRubyが適切に動作するかを確認する為に以下のをコマンドプロンプトにて実行します。

jruby -version

これで、JRubyのバージョンの情報が表示されればインストール完了です。

JRubyのインストールはこれで終わりなのですが、JavaからRubyを実行するにはいくつかのパッケージが必要になりますので、CLASSPASHに指定してください。

  • jruby-engine.jar
  • bsf.jar
  • profile.jar

jruby-engien.jarはスクリプトを動かす為のライブラリです。Java 6 では、「Java Script」はスクリプトエンジンが実装されているのですが、Rubyはまだ実装されていません。そこで、このライブラリが必要になります。ココから「jsr223-engines.zip」をダウンロードして、適当なところに解凍してください。

下の2つは「%JRUBY_HOME%\lib」にあります。

これで準備は整いました。それでは、実際に動くか試してみましょう。

import javax.script.*;

public class Test {
 private static ScriptEngine ruby = new ScriptEngineManager().getEngineByName("ruby");
 
 public static void main(String[] args) throws Exception {
  String program = "def hello(n)\n puts \"Hello \" + n\n end";
  ruby.eval(new java.io.StringReader(program));
  ruby.put("s", "JRuby");
  ruby.eval("hello($s)");
 }
}

実行結果

Hello JRuby

と、表示されれば成功です。java.lang.NullPointerException(がっ!!)と表示される場合は、環境変数を見直しましょう。

0 件のコメント:

コメントを投稿