Search code examples
jrubyrvmjrubyonrails

How do I use JRUBY_OPTS with RVM?


It seems that the idiomatic way to provide flags to JRuby in an RVM-based Rails project is to set the environmental variable JRUBY_OPTS or PROJECT_JRUBY_OPTS, the latter perhaps being done automatically, since I see I can uncomment this line from my project directory's .rvmrc:

PROJECT_JRUBY_OPTS=( --1.9 )

However, that line seems to do nothing, and if I set the environmental variables, RVM actually unsets them.

So, how am I supposed to do this?

(Note that I have this at the bottom of my .bashrc file, which is how I believe I'm supposed to use rvm:)

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # This loads RVM into a shell session.

Example:

$ JRUBY_OPTS=--1.9 jruby -v
jruby 1.6.5 (ruby-1.9.2-p136) (2011-10-25 9dcd388) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_27) [darwin-x86_64-java]

$ export JRUBY_OPTS=--1.9
$ jruby -v
jruby 1.6.5 (ruby-1.8.7-p330) (2011-10-25 9dcd388) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_27) [darwin-x86_64-java]
$ env | grep JRUBY_OPTS
[empty result]

Solution

  • this option was parsed with jruby nailgun hook only, i have added a new hook to parse only this options (no ng):

    rvm get head
    chmod +x ${rvm_path}/hooks/after_use_jruby_opts
    

    and it should work upon entering directory with this option