JRuby“;“没有要加载的此类文件”;

JRuby“;“没有要加载的此类文件”;,ruby,gem,jruby,bundler,Ruby,Gem,Jruby,Bundler,通过rvm和gem版本1.8.24使用jruby-1.6.7,我创建了一个包含gem文件的新项目: source 'http://rubygems.org' gem 'google-api-client' 和main.rb: require 'google/api_client' 之后 我明白了 但是当我运行ruby main.rb时,它会导致一个错误: LoadError: no such file to load -- google/api_client require at org

通过rvm和gem版本1.8.24使用jruby-1.6.7,我创建了一个包含gem文件的新项目:

source 'http://rubygems.org'
gem 'google-api-client'
和main.rb:

require 'google/api_client'
之后

我明白了

但是当我运行ruby main.rb时,它会导致一个错误:

LoadError: no such file to load -- google/api_client
  require at org/jruby/RubyKernel.java:1033
   (root) at main.rb:1
核磁共振成像显示一切正常。这个问题似乎并不局限于任何特定的宝石


有人能帮我吗?

除非您的环境中有
JRUBY\u OPTS=--1.9
,或者您在命令行上传递
--1.9
标志,否则JRUBY将默认为1.8模式,这意味着在加载gems之前,您必须明确地在
main.rb中
要求使用“rubygems”

谢谢您的编辑建议。但是,一般来说,如果要使用多个Ruby vm(您提到MRI),那么强制JRuby的
1.9
模式比添加显式
require
s要好。1.8和1.9之间还有其他可能让你在将来绊倒的差异。从JRuby 1.7(
rvm安装JRuby-1.7.0.preview1
)开始,它默认为1.9,或者你可以使用
--1.9
安装JRuby,也可以切换它,而不需要
JRuby\u OPTS=--1.9
addressable (2.2.8)
autoparse (0.3.1)
bouncy-castle-java (1.5.0146.1)
bundler (1.1.4)
extlib (0.9.15)
faraday (0.8.1, 0.7.6)
ffi (1.0.11 java)
google-api-client (0.4.3)
jruby-launcher (1.0.14 java)
jruby-openssl (0.7.7)
json (1.7.3 java)
jwt (0.1.4)
launchy (2.1.0 java)
multi_json (1.3.6)
multipart-post (1.1.5)
rack (1.4.1)
rake (0.9.2.2)
rubygems-bundler (1.0.2)
rubygems-update (1.8.24, 1.7.2)
rvm (1.11.3.3)
signet (0.3.4)
spoon (0.0.1)
LoadError: no such file to load -- google/api_client
  require at org/jruby/RubyKernel.java:1033
   (root) at main.rb:1