c如何从Java调用/使用MRI Ruby?
我想从Java环境中调用Ruby方法。我尝试过以下四种解决方案:
- 使用JRuby。这将是非常好的,因为它在Java虚拟机中运行一切。然而,我遇到了一些关键的(不可接受的)性能问题:
- JRuby目前不适用于我的C扩展李>
- 来自Ruby的Fork调用在Java虚拟机中运行时行为不稳定李>
- JRuby中的代码运行速度比Ruby慢李>
- 使用ROR。通过Ruby on Rails提供Web服务,绕过Java。这是可行的,但打破了公司仅使用Java Web服务的IT政策,它还迫使IT部门(Java和Web服务开发人员)或R&;D部门(Ruby和C开发人员)在该领域之外工作李>
- 使用Java系统调用。我们可以通过Java系统调用调用独立的Ruby程序,并通过XML文件解析输入和输出数据。这是可行的,但启动新进程和处理XML文件的开销是一个性能问题李>
- 使用RJB。Ruby Java Bridge允许我从Ruby调用Java,但这与我需要的正好相反李>
有没有一种方法可以从Java调用MRI Ruby,而不存在上述任何问题
# 1 楼答案
您可以通过以下方式提高#3的效率:
但总的来说,我看你没有错过任何选择。对不起