JRuby "no such file to load"

bundler, jruby, ruby, rubygems

Solution

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.

Problem

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?

Original source