3

我曾尝试将 EventMachine 等与 JRuby 一起使用。我收到有关本机扩展的错误。我相信这是由于 Java 的限制。我认为我在 Windows 上的事实使问题进一步复杂化。一些澄清将不胜感激。哪些扩展可以/不能与 JRuby 一起使用?我怎么知道?谢谢。

4

2 回答 2

2

不幸的是,JRuby 不支持本地扩展,因为它们依赖于特定于 C 实现的特定内存和运行时细节。
通常你可以在 JVM 上找到一个等效的库,它可以很好地替代......

要完成LDomagala 的回答,您还可以参考与同一“本机扩展”问题相关的此线程

某些安装脚本可能依赖于RUBY_PLATFORM 根据您的操作系统确定是否构建本机扩展。如果您在 Windows 上,则不会构建它们。

避免本机编译的另一种方法是使用 ENV var ' NORUBYEXT'。

但这仍然可能需要对 ruby​​ 安装脚本进行一些调整......

于 2009-02-08T21:36:08.283 回答
1

在 jruby 中使用本机扩展并没有真正简单的方法。本机扩展正在调用无法在 jruby 中调用的 c 代码,而无需在 java 中实现它。除此之外,一些扩展正在查看 jruby 端口,例如您提到的 EventMachine。

据我所知,查看是否可以将 gem/extension 与 jruby 一起使用的唯一方法是阅读文档、尝试或阅读源代码

于 2009-02-08T21:08:08.473 回答