代码之家  ›  专栏  ›  技术社区  ›  sfish

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

  •  3
  • sfish  · 技术社区  · 16 年前

    我尝试过将EventMachine等与JRuby一起使用。我收到关于本机扩展的错误。我认为这是由于Java的局限性。我认为我使用Windows的事实使问题更加复杂。如能澄清,不胜感激。哪些扩展可以/不能与JRuby一起使用?我怎么知道?谢谢。

    2 回复  |  直到 16 年前
        1
  •  2
  •   Community Mohan Dere    8 年前

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

    完成 LDomagala's answer ,你也可以参考 this thread 与相同的“本机扩展”问题相关

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

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

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

        2
  •  1
  •   LDomagala    16 年前

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

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

    推荐文章