我想从Java环境调用Ruby方法。我尝试了这四种解决方案:
- 使用JRuby 。这将是非常好的,因为它运行Java虚拟机中的所有内容。但是,我遇到了一些严重(不可接受)的性能问题:
- JRuby目前无法使用我的C扩展程序。
- 来自Ruby的Fork调用,在Java虚拟机中运行时表现不稳定。
- JRuby中的代码运行速度比MRI 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的方法,没有任何上述问题?