2012-05-16 52 views
1

我安裝的JRuby與rbenv如何設置JRUBY_HOME正確的值,如果我使用rbenv

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爲「/家庭/ myjava_api /。 rbenv/versions/jruby-1.6.7.2/bin/jruby「並重新登錄後執行」ruby​​ -v「我得到錯誤:」錯誤:無法找到或加載主類org.jruby.Main

當我remov e $ JRUBY_HOME變量「ruby​​ -v」正常工作

什麼是正確的$ JRUBY_HOME值?

回答

1

我想明顯的問題是,爲什麼你要$RUBY_HOME如果它沒有它工作正常?

JRuby是如此簡單的安裝你不需要任何版本管理器。只需下載Zip文件並將其解壓到任何你喜歡的目錄。然後將JRuby/bin目錄添加到您的路徑。在你的情況下,似乎是/home/myjava_api/.rbenv/versions/jruby-1.6.7.2/bin

如果您有需要的JRuby不同版本或gem不同羣體只是提取適當JRuby版本的副本爲每個項目的幾個項目。假設您爲每個項目使用正確的PATH,那麼將運行JRuby的正確版本,並且它將爲您安裝該項目的所有gem,並且每個項目將完全分開。

2

rbenvrvm這樣的實用程序的全部要點是能夠在ruby實現之間進行切換,而不必擔心更改環境變量,因爲它們可以爲您做;你不需要設置$JRUBY_HOME來運行JRuby(順便說一下你會是/home/myjava_api/.rbenv/versions/jruby-1.6.7.2),因爲這些實用程序旨在使底層實現透明化。

3

我(rbenv)由專人管理我的道路了一會兒,在第一次之後嘗試這種工具,並得到了同樣的錯誤:錯誤:無法找到或加載主類org.jruby.Main 在卸載我以前版本的jruby以嘗試rbenv後,我完全忘記了在我的.bash_rc文件中取消舊的JRUBY_HOME設置。

爲了迴應其他答案,我有一些工具和庫需要設置JRUBY_HOME變量才能工作,http://vertx.io/就是一個例子。另一方面,現在很多寶石和工具都走向另一條路線,並且似乎假定你正在使用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"。希望這能說明問題。我意識到這是一個古老的問題,但是當我搜索錯誤時,這是​​第一個相關的結果。

+0

您只需要取消設置JRUBY_HOME。沒有必要設置一個新的JRUBY_HOME,如果它是按照Sebastien的說法來管理rbenv/rvm。 – Salil

+0

Salil,我想你錯過了我說的一些工具,vert.x就是其中之一,要求設置JRUBY_HOME,或者在我回答這個問題時做過。如果您使用rbenv或rvm,則無關緊要,它會檢查JRUBY_HOME,如果未設置,則無法工作。這個解決方案很簡單,只要正確設置JRUBY_HOME就可以了。這個錯誤是由於你的路徑錯誤造成的。這可能不是rbenv如何使用,但有時你只需要工作。現在,我只需要使用jruby來完成所有工作,而不必擔心類似的工具。 –

相關問題