2009-02-08 23 views
3

我試過用JRuby來使用EventMachine等。我收到有關本機擴展的錯誤。我相信這是由於Java的限制。我認爲我在Windows上的事實使問題更加複雜化。一些澄清將不勝感激。哪些擴展可以/不能用於JRuby?我怎麼知道?謝謝。JRuby/Windows和(native)擴展如何區分它們?

回答

1

在jruby中沒有真正簡單的方法來使用本機擴展。本機擴展調用的是不能在java中實現的c代碼,它不能在jruby中調用。除此之外,還有一些擴展可以看到jruby端口,例如您提到的EventMachine。

而且據我所知,看看您是否可以使用寶石/擴展使用JRuby是閱讀的文檔,請嘗試,或閱讀源

的唯一途徑
2

的JRuby不支持原生擴展,不幸的是,因爲它們依賴於特定於C實現的特定內存和運行時細節。
通常你可以找到在JVM上的等價庫將作爲替代以及工作...

要完成LDomagala's answer,你也可以參考this thread涉及到相同的「本機擴展」的問題

某些安裝腳本可能依賴RUBY_PLATFORM來確定是否根據您的操作系統構建本機擴展。如果你在窗戶上,它不會建立它們。

避免本地編譯的另一種方法是使用ENV var'NORUBYEXT'。

但是,這仍然可能涉及到一些調整在紅寶石安裝腳本...

相關問題