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) を試していたところ、同じエラーが発生しました: Error: Could not find or load main class org.jruby.Main以前のバージョンの jruby をアンインストールして rbenv を試した後、.bash_rc ファイルの古い JRUBY_HOME 設定。

他の回答に応えて、動作するために JRUBY_HOME 変数を設定する必要がある特定のツールとライブラリがあります。 http://vertx.io/はその一例です。一方、最近の多くの gem やツールは別のルートに進んでおり、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_HOMEJRuby を実行するように設定する必要はありません(これは偶然です)。/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または の異なるグループを必要とする複数のプロジェクトがある場合は、プロジェクトごとgemに適切なバージョンのコピーを抽出するだけです。各プロジェクトに正しいバージョンをJRuby使用すると仮定すると、 の正しいバージョンが実行され、そのプロジェクトにインストールしたすべての が含まれ、各プロジェクトは完全に分離されます。PATHJRubygem

于 2012-06-04T21:55:27.343 に答える