所以我提出了在JRuby中编写一些代码然后通过Java访问所有类的一般想法。我不知道这是否可能,但无论如何我想问。让我们说 有一些JRuby代码:
class adder
def addme
return 22
end
end
如果我使用jrubyc编译它,那么我可以在java中做任何类似的事情:
import adder;
class anything {
void testMethod()
{
adder a = new adder();
int x = a.addme();
}
}
现在看了之后,有点让我觉得Java不知道什么样的项目测试addme会返回,这可能不起作用。我不知道,但无论如何我想把它扔出去。
由于
答案 0 :(得分:8)
在JRuby 1.5中实际上有一种新方法可以做到这一点!你的问题非常及时。这是一个示例会话:
我们希望很快就会有一篇博文详细介绍这一新功能。 JRuby wiki上有一些初步的文档:
答案 1 :(得分:1)
实际上有两种方法可以从java调用ruby代码,第一种方法较慢但是你可以在运行时更改是从这个link调用脚本引擎。但至于你是如何做到的,jrubyc将ruby编译为javaBytecode,这意味着java会将其视为java代码
jrubyc adder.rb --java 将文件“adder.rb”编译为“Adder.class”类
和你一样......
所以你可以像任何其他java类一样调用它
import org.jruby.RubyObject
Adder ad = new Adder();
RubyObject ro = ad.addme();
答案 2 :(得分:0)
使用JRuby中的嵌入包是可能的,但我认为这超出了答案的范围。看一下这个: http://kenai.com/projects/jruby/pages/RedBridge