Rail3でJavaを呼び出し

ちょっと、調べたので、忘れないうちに書き込みします。
Rails3からJavaのクラスを使用する方法です。

まず、JavaのクラスをコンパイルしてJarを作りました。

Javaのソースは単純

package test.rjb;

class SampleClass {

    public SampleClass() {
    }


    public String sample() {
        return "Hello Java!";
    }

}

こいつをJARに入れます。Ant使いました。



    
        
    

    
        
    

~           

Rails3の方はconfig/environment.rbに以下を書きます。

ENV['JAVA_HOME'] = "/usr/local/jdk1.6.0_21/"
ENV['LD_LIBRARY_PATH'] = "/usr/local/jdk1.6.0_21/jre/lib/"

ここでGeneratorでController作ります。

rails g Sample index

作ったJARファイルはlib/jars以下に入れます。

class SampleController < ApplicationController
  def index
    rjbtest_path = '/home/majima/Rails3/rjb/lib/jars/rjbtest.jar'
    Rjb::load(rjbtest_path);
    str = Rjb::import('test.rjb.SampleClass')
    @s = str.new.sample
  end
end

出来上がったControllerにindexに以下の様に書きます。

class SampleController < ApplicationController
  def index
    rjbtest_path = '/home/smajima/Rails3/rjb/lib/jars/rjbtest.jar'
    Rjb::load(rjbtest_path);
    str = Rjb::import('test.rjb.SampleClass')
    @s = str.new.sample
  end
end

View側にいかのように書くとHello Java!と表示されます。

<h1>Rjb</h1>
<%= @s %>