Runtime vs. JRuby从Java执行Ruby脚本

时间:2012-09-18 11:13:58

标签: java ruby jruby

我想知道使用Runtime从Java类执行Ruby脚本而不是使用ruby-java桥JRuby的优缺点是什么?

运行时的示例

Process process = Runtime.getRuntime().exec("ruby start.rb blue_button_example_data.txt");
    try {
        process.waitFor();
    } catch (InterruptedException e) {
        e.printStackTrace();
        return;
    }

jRuby http://dior.ics.muni.cz/~makub/ruby/

的示例

我在问,因为我有一个遗留Java系统,我们正在与具有ruby脚本的系统集成,我们正在尝试重用它们,而不是在java中重写它们。我们想知道哪种方法最好。

谢谢!

1 个答案:

答案 0 :(得分:1)

正如人们提到的,JRuby可能会更快,但更重要的是它可以让你与Java更紧密地集成:你可以从JRuby调用Java代码,反之亦然。这也可以实现Java和Ruby之间更平滑的过渡,因为基础架构可以保持不变(您可以在Java EE应用程序服务器中部署Rails应用程序),开发人员可以逐步在两者之间切换。

有关集成的更多详细信息,请参阅JRuby wiki

JRuby的唯一缺点是一些MRI宝石不能使用,因为它们使用本机代码 - 尽管这不是我最近被阻止的东西。