1

在进行了一些谷歌搜索之后,我得出的结论是,我非常不了解 JRuby 和 Gems 之间的关系。我正在 netbeans 中用 JRuby 开发一个程序。我知道您只能在 JRuby 中使用纯粹用 Ruby 编写的 gem(我假设 netbeans JRuby 获得的 Gem 只是这些类型的 gem)。

我的问题是,如果我在程序中使用 gem,它会正确部署吗?目标计算机将只有 Java JRE,无法下载 JRuby 或 gems。

我应该完全避免使用 gems,还是将 gem 编译成 java 字节码,或者我还能做些什么?

4

1 回答 1

1

JRuby 是一个 ruby​​ 实现,您确实可以像使用 MRI 一样使用 gems。

gems 可以在 ruby​​ 中实现,在这种情况下,ruby 代码将由 JRuby 执行并根据需要进行 JIT 处理,就像您自己的 JRuby 代码一样;在 Java 中,在这种情况下它已经是 Java 字节码;甚至在 C 中,因为 JRuby 具有 C 扩展支持,但它们的使用更多“<a href="http://blog.headius.com/2010/07/what-jruby-c-extension-support-means-to .html" rel="nofollow">危险的"。

如何将 gems 与应用程序打包在很大程度上取决于您如何部署它。您可以将它们复制到一个文件夹中,然后将该文件夹添加到LOAD_PATH. 如果您使用类似warblerrawr的库,它们会为您将 gem 打包到您的应用程序中。如果您使用导轨,您也可以bundler像平时使用 MRI 一样使用。

于 2012-11-18T07:53:35.003 回答