1

我用 rbenv 安装了 JRuby

ruby -v
jruby 1.6.7.2 (ruby-1.9.2-p312) (2012-05-01 26e08ba) (Java HotSpot(TM) 64-Bit Server VM 1.7.0_01) [linux-amd64-java]

which ruby
~/.rbenv/shims/ruby

gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.24
  - RUBY VERSION: 1.9.2 (2012-05-01 patchlevel 312) [java]
  - INSTALLATION DIRECTORY: /home/myjava_api/.rbenv/versions/jruby-1.6.7.2/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /home/myjava_api/.rbenv/versions/jruby-1.6.7.2/bin/jruby
  - EXECUTABLE DIRECTORY: /home/myjava_api/.rbenv/versions/jruby-1.6.7.2/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-java-1.7
  - GEM PATHS:
     - /home/myjava_api/.rbenv/versions/jruby-1.6.7.2/lib/ruby/gems/1.8
     - /home/myjava_api/.gem/jruby/1.9
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - "install" => "--no-rdoc --no-ri"
     - "update" => "--no-rdoc --no-ri"
  - REMOTE SOURCES:
     - http://rubygems.org/

但是 $JRUBY_HOME 没有设置

当我将 $JRUBY_HOME 设置为“/home/myjava_api/.rbenv/versions/jruby-1.6.7.2/bin/jruby”并在重新登录后执行“ ruby -v ”时出现错误:“错误:找不到或加载主类 org.jruby.Main "

当我删除 $JRUBY_HOME 变量“ ruby​​ -v ”工作正常

什么必须是正确的 $JRUBY_HOME 值?

4

3 回答 3

3

在手动管理我的 PATH 一段时间后,我第一次尝试了这个工具(rbenv)并得到了同样的错误:错误:找不到或加载主类 org.jruby.Main 我完全忘记取消设置在卸载我以前版本的 jruby 以试用 rbenv 之后,我的 .bash_rc 文件中的旧 JRUBY_HOME 设置。

作为对其他答案的回应,我有某些工具和库需要设置 JRUBY_HOME 变量才能工作, http: //vertx.io/就是一个例子。另一方面,如今许多 gems 和工具走另一条路,似乎假设您使用的是 rvm 或 rbenv。因此,使用其中一种工具,但继续设置 JRUBY_HOME 似乎是阻力最小的路径。

幸运的是,当 JRUBY_HOME 设置正确时,它可以与 rbenv 一起正常工作。例如,我的设置是这样的export JRUBY_HOME="/home/user/.rbenv/versions/jruby-1.7.1"

原始海报的错误似乎是试图将变量设置为 jruby 可执行文件,而实际上 JRUBY_HOME 应该只是整个 jruby 目录。我认为他的应该是"/home/myjava_api/.rbenv/versions/jruby-1.6.7.2"。希望这能说明问题。我意识到这是一个老问题,但是当我搜索错误时,它是第一个相关结果。

于 2013-01-09T20:59:02.113 回答
2

rbenvor这样的实用程序的全部意义在于rvm能够在 ruby​​ 实现之间切换而不必担心更改环境变量,因为它们会为您做这件事;您不需要设置$JRUBY_HOME为运行 JRuby(这对您来说是偶然的/home/myjava_api/.rbenv/versions/jruby-1.6.7.2),因为这些实用程序旨在使底层实现透明。

于 2012-06-06T17:45:04.450 回答
1

$RUBY_HOME我想一个明显的问题是,如果没有它也能正常工作,你为什么想要它?

JRuby安装非常简单,您不需要任何版本管理器。只需下载 Zip 文件并将其解压缩到您喜欢的任何目录即可。然后将JRuby/bin目录添加到您的路径。在你的情况下,这似乎是/home/myjava_api/.rbenv/versions/jruby-1.6.7.2/bin

如果您有多个项目需要不同版本JRuby或不同组的s,只需为每个项目gem提取适当版本的副本。JRuby假设您PATH为每个项目使用正确的版本,那么正确的版本JRuby将会运行,并且它将包含gem您为该项目安装的所有 s,并且每个项目将是完全独立的。

于 2012-06-04T21:55:27.343 回答