从Java调用现有JRuby对象的方法

时间:2015-03-15 13:57:54

标签: java ruby jruby

我正在尝试向我的Java类提供JRuby回调,因此当我的程序的Java部分(a OrientDB Java Hook)发生事件时,我会收到通知。

JRuby wiki提供examples演示如何加载JRuby文件并在Java中运行它们,但在我的例子中,Ruby代码已经在同一个JVM中,我只需要向现有的Ruby对象发送信号

假设我在内存中加载了ruby类:

class A
  def self.b
    puts 'ruby called'
  end
end

如何从Java方法中调用A.b

1 个答案:

答案 0 :(得分:0)

原来我可以在这种情况下使用JRuby。

对于OrientDB嵌入示例,我可以传递一个ruby类

而不是Java类
class H < com.orientechnologies.orient.core.hook.ORecordHookAbstract
  def onRecordAfterCreate(r)  
    puts r
  end  
end  

到API并让Java代码调用Ruby。

Relevant gist