2009-11-28 2 views
2

내가 JRuby를에 main.rb 아래 실행하는 동안 노코 기리 스크립트nokogiri-java를 설치하지 않고 jruby에서 nokogiri를로드 할 수 있습니까?

#parser.rb 
require 'nokogiri' 

def parseit() 
//... 
end 

다음 실행하고 parseit()를 호출하는 방법이 필요 물론

#main.rb 
require 'parser' 

parseit() 

문제는 내가하지 않은으로 JRuby를가 'nokogiri'을 찾을 수 있습니다 일명 nokogiri-java via jruby -S gem install nokogiri

이유는 nokogiri run unde에서 발견 된 버그가 있습니다. r Jruby, 그래서 Ruby가 아닌 Jruby에만 nokogiri를 설치했습니다. parser.rb은 Ruby에서 완벽하게 실행됩니다.

그래서 내 목표는 Jruby에 nokogiri를 설치하지 않고도 parseit()을 실행할 수있게하는 것입니다!

답변

0

Nokogiri는 FFI를 통해 JRuby에서 작동해야하므로, JRuby에서 nokogiri를 설치하는 것이 왜 효과가 없는지 알아 보는 것이 가장 좋습니다.

어떤 종류의 문제가 발생합니까? 무슨 JRuby 버전? 어떤 플랫폼?

7

Nokogiri는 JRuby에서 잘 작동합니다 (1.4.0에는 문제가 있지만 1.4.1 버전의 젬은 완벽하게 작동합니다). 당신이 플랫폼 감지에 문제가있는 경우

jruby -S gem install nokogiri 

당신은 그것을 강제 할 수 있습니다 : 당신이 어쩌면 당신은 스택있어 ISN 경우

jruby -S gem install nokogiri --platform=java 

당신은 JRuby를 함께 사용하는 문제가 안된다 ' 맞아.

관련 문제