Jasper
Jasper

Reputation: 2471

JRuby "no such file to load"

Using jruby-1.6.7 via rvm and gem version 1.8.24 I created a new project containing a Gemfile:

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

and a main.rb:

require 'google/api_client'

After

gem install bundler
bundle install
gem list

I get

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)

But when I run ruby main.rb, it results in an error:

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

On MRI everything seems to be working fine. The problem does not seem bound to any specific gem.

Can someone help me with this?

Upvotes: 3

Views: 9126

Answers (1)

Ian Dickinson
Ian Dickinson

Reputation: 13305

Unless you have JRUBY_OPTS=--1.9 in your environment, or you pass the --1.9 flag on the command line, JRuby will default to 1.8 mode, which means that you explicitly have to require 'rubygems' in main.rb before you load your gems.

Upvotes: 7

Related Questions