Fork me on GitHub

Jruby Javaクラスの呼び出し

  • Nov 24, 2009

categoryプラグインは存在しません。

概要

JRubyからJavaクラスを呼び出す際にはまった点のまとめです。

環境

  • JRuby 1.1.5
  • Java 1.6.0u16

基本

基本的な呼び方は以下のようにします。

include Java
include_class 'org.apache.xxx.SomeClass'

obj = SomeClass.new(args)
obj.method()

最初のinclude以外は、ほとんどRubyの流儀で呼び出すことができます。

注意点

配列など

byte配列が必要なメソッドにはrubyの配列は渡せませんので、

bytes = "abc".to_java_bytes

などとして、Javaのbyte配列に変換して渡します。

定数

定数は、

CreateMode::PERSISTENT

などという風に参照します。

内部クラス

内部クラスは定数と同じように

ZooDefs::Ids

などという感じで参照します。

インタフェースの実装

JavaではListenerオブジェクトをメソッドに渡すというようなことがよくありますが、このような場合は、

class HogeListener
  include ActionListener
end

という感じで、インタフェースをincludeしたクラスを作って、このオブジェクトを渡してやります。

参考

commentプラグインは存在しません。