JRuby / Windows和(本机)扩展如何区分它们?

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

在jruby中使用本机扩展没有非常简单的方法。 本机扩展调用不能在jruby中调用的c代码而不在java中实现它。 除此之外,一些扩展正在看到jruby端口,例如你提到的EventMachine。

并且据我所知,看看你是否可以使用jruby的gem /扩展的唯一方法是阅读文档,尝试它或阅读源代码

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

要完成LDomagala的答案 ,您还可以参考与相同“原生扩展”问题相关的此主题

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

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

但这仍然可能涉及ruby安装脚本中的一些调整…