2012-05-31 55 views
3

使用通過RVM和寶石版本1.8.24 JRuby的1.6.7我創建包含的Gemfile一個新項目:JRuby的 「沒有這樣的文件來加載」

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

和main.rb的:

require 'google/api_client' 

gem install bundler 
bundle install 
gem list 

我得到

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) 

但是當我運行紅寶石main.rb的,它導致一個錯誤:

LoadError: no such file to load -- google/api_client 
    require at org/jruby/RubyKernel.java:1033 
    (root) at main.rb:1 

在MRI一切似乎是工作的罰款。這個問題似乎並不侷限於任何特定的寶石。

有人可以幫助我嗎?

回答

7

除非你在你的環境中有JRUBY_OPTS=--1.9,或者你通過--1.9標誌在命令行中,JRuby的將默認爲1.8模式,這意味着你必須明確在main.rbrequire 'rubygems'加載你的寶石之前。

+0

感謝您的編輯建議。但是,一般來說,如果你打算使用多個Ruby虛擬機(你提到過MRI),那麼最好強制JRuby的'1.9'模式,而不是增加顯式的'require'。 1.8和1.9之間還有其他的區別可能會在將來引發你的注意。 –

+3

以JRuby 1.7('rvm install jruby-1.7.0.preview1')開頭,它默認爲** 1.9 **,或者你可以用'--1.9'來安裝jruby,它也會切換它,不需要'JRUBY_OPTS = - 1.9'。 – mpapis

相關問題