我目前在尝试让 gem Nokogiri 在我的小程序中工作时遇到了真正的问题。我有 jruby-complete-1.7.3 jar 并尝试使用普通安装行安装 gem:
java -jar jruby-compelete-1.7.3.jar -S gem install nokogiri
而且我也尝试过 Gem-In-A-Jar 方法。起初它工作正常,并允许我评估 ruby 代码并存储返回的数据。当我在行中添加时出现了我的问题:
require 'nokogiri'
虽然该行在 irb 中工作正常,但当尝试从小程序访问它时,我收到以下错误:
classpath:/META-INF/jruby.home/lib/ruby/shared/rubygems.rb:396 warning: can't
canonicalize loaded names due to security restrictions; disabling
Message: (LoadError) no such file to load -- nokogiri
堆栈跟踪:
org.jruby.exceptions.RaiseException: (LoadError) no such file to load -- nokogiri
at org.jruby.RubyKernel.require(org/jruby/RubyKernel.java:1027)
at RUBY.require(classpath:/META-INF/jruby.home/lib/ruby/shared/rubygems/custom_require.rb:36)
at RUBY.(root)(<script>:2)
我根本无法弄清楚为什么会发生这个异常。我试过了:
- 手动将 gem 移动到“META-INF/jruby.home/lib/ruby/gems/shared”文件夹中
- 我在 nokogiri 调用上方添加了“需要'rubygems'”。
- 通过 Gems-in-a-jar 方法访问 gem:http: //blog.nicksieger.com/articles/2009/01/10/jruby-1-1-6-gems-in-a-jar/
如果有人知道我哪里出错了,或者这个问题的解决方案,我将不胜感激。