JrubyJavaから扱ってみる環境を作ってみよう。

今回は、Javaから単にRubyを実行できるようにする方法

  1. インストール方法

以下のjarをプロジェクトに追加。

https://scripting.dev.java.net/servlets/ProjectDocumentList?folderID=0
より、jsr223-engines.zipを解凍して、jrubyフォルダ下の

http://jruby.codehaus.org/
より、jruby-bin-1.0.3.zipを解凍して、libフォルダ下の

  • jruby.jar
  • asm-2.2.3.jar
  • backport-util-concurrent.jar

試してみたソース

package sample;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineFactory;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class SampleEngine {

	public static void main(String[] args) {

		String rubyCode = "file = open(\"C:/tmp/sample.txt\")\n";
		rubyCode += "str = file.read\n";
		rubyCode += "file.close\n";
		rubyCode += "puts str.include?(\"ai\") \n";

		ScriptEngineManager manager = new ScriptEngineManager();

		for (ScriptEngineFactory factory : manager.getEngineFactories()) {
			System.out.println(factory.getEngineName() + ":");
			for (String name : factory.getNames()) {
				System.out.println("\t" + name);
			}
		}

		ScriptEngine engine = manager.getEngineByName("ruby");

		try {
			engine.eval(rubyCode);
		} catch (ScriptException e) {
			e.printStackTrace();
		}
	}
}

実行結果は、ファイルの中身にaiって文字列あれば、trueが表示され、なければfalseが表示されます。