我是否应该尝试在Java项目中重用Ruby代码?

我是否应该尝试在Java项目中重用Ruby代码?,java,ruby,jruby,polyglot,Java,Ruby,Jruby,Polyglot,我不想“重新发明轮子”,我发现了一个Ruby项目,它在我的Java应用程序中提供了我所需要的功能(没有一个预先存在的Java项目可以满足我的需要——相信我,我已经看过了)。因此,在最佳情况下,我能够从Java代码(ala JSR223)运行Ruby代码 然而,这个Ruby项目依赖于安装几个Gem。我对将整个Java应用程序转换为JRuby应用程序一点也不感兴趣,但我希望能够利用这个项目。有没有一种简单的方法可以将gem中的代码加载到脚本引擎中,或者我只是在问一些令人头痛的问题?由于复杂性,我通常

我不想“重新发明轮子”,我发现了一个Ruby项目,它在我的Java应用程序中提供了我所需要的功能(没有一个预先存在的Java项目可以满足我的需要——相信我,我已经看过了)。因此,在最佳情况下,我能够从Java代码(ala JSR223)运行Ruby代码


然而,这个Ruby项目依赖于安装几个Gem。我对将整个Java应用程序转换为JRuby应用程序一点也不感兴趣,但我希望能够利用这个项目。有没有一种简单的方法可以将gem中的代码加载到脚本引擎中,或者我只是在问一些令人头痛的问题?

由于复杂性,我通常会说不。尽管这是主观的,但我个人还是宁愿花时间重新编写它——你可以做一些改进,完成后,你会更好地理解它。

由于复杂性,我通常会说不。尽管这是主观的,但我个人还是宁愿花时间重新编写它——您可以进行改进,完成后,您会更好地理解它。

JRuby是一个可靠的平台,与Java很好地集成。但是Rubygems与Java构建工具的集成不是很好

如果有任何gem包含本机C代码,那么请忘记它,您不能从JRuby使用它们


如果所有gem(以及它们的所有依赖项)都是纯Ruby,那么从JRuby使用它们在技术上是可能的,但是要将它们打包到JAR中,以便JRuby运行时能够找到它们,您将非常头疼。

JRuby是一个可靠的平台,并且与Java很好地集成。但是Rubygems与Java构建工具的集成不是很好

如果有任何gem包含本机C代码,那么请忘记它,您不能从JRuby使用它们


如果所有的宝石(及其所有依赖项)都是纯红宝石,在技术上可以从JRuby中使用它们,但是<>强> Wr.<强>将它们打包在JAR中,这样JRuby运行时可以找到它们。

< P>你可以考虑将一个应用程序分割成两块,使用管道/文件(或简单的stdin和stdout)或某种RPC机制进行交互。这样的方法是否真正意义上取决于Ruby库所做的事情——创建两个应用程序之间的接口可能比实际重新实现java中的内容更复杂。

< P>一个选项,您可以考虑将应用程序拆分为两个部分,它们使用类似管道/文件的方式进行交互。(或简单的标准输入和标准输出)或者某种RPC机制。像这样的方法是否有意义实际上取决于Ruby库的功能——在两个应用程序之间创建接口可能比用Java重新实现更复杂。

我重用了JRuby的Java代码,我不明白为什么这不能同时实现


另一个想法是,你能运行Ruby代码,然后从Java应用程序中调用一个web服务或一组web服务吗?这使得为Ruby代码编写web服务包装器变得非常简单。而且Java并不缺少调用web服务的工具。

我重用了JRuby中的Java代码,我不明白为什么这不能两全其美


另一个想法是,你能运行Ruby代码,然后从Java应用程序中调用一个web服务或一组web服务吗?这使得为Ruby代码编写web服务包装器变得非常简单。Java并不缺少调用web服务的工具。

我同意,如果可能的话,将其移植到Java会很好。但是,因为关于时间限制,我可能会使用的替代方法是将其作为web服务运行。我同意,如果可能的话,将其移植到java将非常好。但是,由于时间限制,我可能会使用的替代方法是将其作为web服务运行。是的,请继续,并告诉我们它是如何运行的:PYes,继续,并告诉我们它是如何运行的:P