如何为现有的ruby项目创建java接口

时间:2016-03-14 13:51:50

标签: java performance jruby

我的项目有一个重要且孤立的部分,用ruby(兼容jruby)编写。它是一个命令行应用程序,我们在终端中运行它并为其提供各种选项标志。

我的客户希望使用此工具,但只有在java类包装时才愿意使用它。我使用jrubyc --javac A.rb将ruby代码转换为java时遇到了很多麻烦。检查转换后的.java文件,它调用Ruby Runtime来执行ruby脚本。像这样: org.jruby.Ruby.getGlobalRuntime().executeScript(stringBuiltFromARubyFile, 'path')

我的问题是性能明智,这不仅仅是将create包装为runnable jar,用一个带有某些参数的java类包装它,并通过Runtime.getRuntime().exec("java -jar A.jar args")执行jar吗?

应用程序A.rb使用多线程。我使用jruby-gradle插件引入了ruby依赖项(gems)。

我可以探索哪些其他选项?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您使用的方法可能无效。您正在ruby上下文中启动JVM;你被要求的是在JVM环境中启动你的一些ruby代码。

我会看C到Ruby绑定,然后使用Java到C(JNI)接口从C层启动所需的Ruby代码。如果这样的事情不切实际,因为您的Ruby更像是一个常设服务而不是CLI流程,我会考虑建立一组Java库来通过网络调用来调用该流程。