使用jruby通过java调用Ruby类

使用jruby通过java调用Ruby类,java,ruby,jruby,Java,Ruby,Jruby,如果我用ruby实现一个类并用jrubyc编译它,那么如果我用java启动它,就不可能直接从java类调用它。如果我看到这个权利,我必须使用org.jruby.embed。。。实现一个采用类名和方法调用ruby类的包装器 如果我使用jruby启动应用程序,是否也必须这样做?在我当前的项目中,我完全使用jruby启动java工作流引擎。工作流必须调用ruby类中找不到的方法 也许更容易理解: [ruby_class] <-----has to call----.

如果我用ruby实现一个类并用jrubyc编译它,那么如果我用java启动它,就不可能直接从java类调用它。如果我看到这个权利,我必须使用org.jruby.embed。。。实现一个采用类名和方法调用ruby类的包装器

如果我使用jruby启动应用程序,是否也必须这样做?在我当前的项目中,我完全使用jruby启动java工作流引擎。工作流必须调用ruby类中找不到的方法

也许更容易理解:

      [ruby_class]   <-----has to call----.
                                          |
jruby [ruby_start_script] --starts--> [java wfe]

我不知道我是否理解,但要要求您的代码,您只需要求它并确保它位于您的JAVA路径或应用程序路径中。例如,在jruby脚本中,您可以执行以下操作:

require 'java'
java_import java.lang.System
version = System.getProperties["java.runtime.version"]
您也可以调用java方法,如:

 java.lang.System.currentTimeMillis
我想说,你让你的类与java应用程序一起工作,然后你应该把它放在你的应用程序路径中,做一个require'java'和java_导入你的.class.here

如果我用ruby和 使用jrubyc编译它,而不是使用它 可以从java类调用它 如果我用java启动它,就直接启动它


不确定我是否完全理解了这个问题,但如果您询问是否可以使用jrubyc从Java类调用Jruby方法,那么这是可能的。看看这篇博客文章,它展示了如何调用。

IIRC,这是JRuby的最新集成之一,可能会有变化。如前所述,这似乎是可能的,但效率不高。

我可以调用Java方法,但无法让Java工作流引擎调用我的ruby方法。我不确定这是通用的-如果没有黑客,你不能从java调用jruby。-因为我在jruby中运行java代码。很难解释…你使用的是什么版本的JRuby?