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

从Java调用现有JRuby对象的方法,java,ruby,jruby,Java,Ruby,Jruby,我试图向Java类提供JRuby回调,以便在程序的Java部分()中发生事件时得到通知 JRubyWiki提供了如何加载JRuby文件并在Java中运行它们的演示,但在我的例子中,Ruby代码已经在同一个JVM中,我只需要向现有的Ruby对象发送信号 假设我在内存中加载了ruby类: class A def self.b puts 'ruby called' end end 我应该如何从Java方法调用A.b?在这种情况下,我可以使用JRuby 对于OrientDB嵌入示例,我

我试图向Java类提供JRuby回调,以便在程序的Java部分()中发生事件时得到通知

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

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

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

我应该如何从Java方法调用
A.b

在这种情况下,我可以使用JRuby

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

class H < com.orientechnologies.orient.core.hook.ORecordHookAbstract
  def onRecordAfterCreate(r)  
    puts r
  end  
end  
H类
并让Java代码调用Ruby


您能否澄清一下如何设置JRuby解释器。。。不清楚您是否正在使用嵌入API。@kares您好,我正在使用jruby 9.0.0.0运行整个应用程序,并在jruby中使用LockJar+com.tinkerpop.blueprints.impls.orient.OrientGraphFactory来获得嵌入的OrientDB。