ruby - JRuby "no such file to load"

标签 ruby gem jruby bundler

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

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)

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

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

在 MRI 上,一切似乎都正常。该问题似乎与任何特定的 gem 无关。

有人可以帮我解决这个问题吗?

最佳答案

除非您的环境中有 JRUBY_OPTS=--1.9,或者您在命令行上传递了 --1.9 标志,否则 JRuby 将默认为 1.8 模式,这意味着在加载 gems 之前,您必须明确地在 main.rbrequire 'rubygems'

关于ruby - JRuby "no such file to load",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10833732/

相关文章:

sql - 存储事件/非事件时间戳

ruby-on-rails - 事务与截断数据库清理器

ruby-on-rails-3 - 使用 omniauth-salesforce gem 获取访问 token

ruby-on-rails - Rails 如何屈服于 erb 模板中的多个 block ?

ruby - 为什么 ruby​​ Pathname#basename 返回前缀为 "Pathname:"的文件名?

ruby-on-rails - Ruby 部分检索大量记录并迭代它们

ruby - 使用 ruby​​ 应用程序时出现 remove_entry_secure 错误

ruby-on-rails - REXML::Document.new 无法使用 US-ASCII 编码的 XML 进行解析

ruby-on-rails - 使用每个请求的 ID 登录 Rails

java - 将编译好的 Rails 应用程序部署到 Heroku 上的 Java 服务器