可以在没有安装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