可以在没有安装nokogiri-java的情况下在jruby中加载nokogiri?

我需要一种方法来运行以下nokogiri脚本

#parser.rb require 'nokogiri' def parseit() //... end 

并在jruby中的main.rb下运行时调用parseit()

 #main.rb require 'parser' parseit() 

当然问题是jruby找不到'nokogiri'因为我还没有安装它nokogiri-java通过jruby -S gem install nokogiri

原因是我在Jruby下运行的nokogiri中发现了一些错误,所以我只在Ruby上安装了nokogiri而不是Jruby。 parser.rb在Ruby下完美运行。

所以我的目标是能够运行parseit()而无需在Jruby上安装nokogiri!

Nokogiri在JRuby下运行得很好(1.4.0有问题,但gem的1.4.1版本对我来说非常合适)。

 jruby -S gem install nokogiri 

如果你有平台检测问题,你可以强迫它:

 jruby -S gem install nokogiri --platform=java 

使用JRuby时不应该有任何问题,如果你那么可能你的堆栈是不对的。

Nokogiri应该在JRuby的FFI下工作。 见http://www.ruby-forum.com/topic/186274

Nokogiri应该通过FFI与JRuby合作,所以在我看来,最好的行动方案就是弄清楚为什么在JRuby中安装nokogiri不适合你。

你看到了什么样的问题? 什么JRuby版本? 什么平台?

下面是一个示例,其中看起来Nokogiri的Java实现会产生与C版本不同的结果,这导致丝瓜gem失败了一堆JRuby测试。 这阻碍了Redmine开发人员支持JRuby的能力。

https://github.com/flavorjones/loofah/issues/88#issuecomment-122747924