自前のJavaクラスを呼び出す

JavaAPIではなく、自前のJavaクラスをJRubyから呼び出してみる。

まずは、以下のJavaクラスを作成する。

package test;

public class Hello {
	public void sayHello(){
		System.out.println("Hello!");
	}
}

便宜上、%JRUBY_HOME%(ex. C:\tmp\jruby-1.0)にmylibという名のフォルダを作成して、そこに上記のクラスを配置する。

jirbはクラスパスとして、環境変数CPやCLASSPATHを見ているようなので、コマンドプロンプトから環境変数CPをセットしておく。

set CP=C:\tmp\jruby-1.0\mylib

jirbを起動して、以下の呪文をとなえる。

irb(main):001:0> require 'java'
=> true
irb(main):002:0> include_class 'test.Hello'
=> ["test.Hello"]

これで、Javaのtest.HelloクラスをHelloという名前でJRuby上から使えるようになる。

実際にHelloクラスのインスタンスを作って、メソッドを呼び出してみる。

irb(main):003:0> hello = Hello.new
=> #<Java::Test::Hello:0x3b4b1e @java_object=test.Hello@c52200>
irb(main):004:0> hello.sayHello
Hello!
=> nil

正常に動作している模様。