Как сделать JRuby 1.6 по умолчанию для Ruby 1.9?

Каков наилучший способ заставить JRuby работать в режиме 1.9 по умолчанию?

т.е. я хочу запустить rake test вместо jruby --1.9 -S rake test

спасибо

Используйте переменную среды JRUBY_OPTS . JRUBY_OPTS содержит список аргументов, которые добавляются к любым аргументам, указанным в командной строке.

Например (в Linux):

 $ jruby -v
 jruby 1.6.0.RC1 (ruby 1.8.7 patchlevel 330) (2011-01-10 769f847) (Java HotSp ...
 $ export JRUBY_OPTS = - 1.9
 $ jruby -v
 jruby 1.6.0.RC1 (ruby 1.9.2 trunk 136) (2011-01-10 769f847) (Java HotSpot (TM ...
 $ export JRUBY_OPTS = - 1.8
 $ jruby -v
 jruby 1.6.0.RC1 (ruby 1.8.7 patchlevel 330) (2011-01-10 769f847) (Java HotSpo ...

Альтернативным решением является установка следующей строки (и других настроек) в файл ~ / .jrubyrc

 compat.version=1.9 

RVM позволяет теперь строить JRuby / Rubinius с режимом по умолчанию, установленным по умолчанию:

 rvm install jruby-1.6.7-d19 --1.9 rvm install rbx-2.0.testing-d19 --1.9 

Суффикс -d19 можно опустить, я использую его только для различения rubyов режима 1.8 и 1.9 .

Режим --1.9 станет стандартным в следующих основных выпусках JRuby / Rubinius, поэтому вы можете убедиться, что используете 1.8 с переключателем --1.8 rvm.

UPDATE 2012-05-25: Jruby 1.7.0.preview1 отсутствует, по умолчанию он 1.9!

В Windows вместо этого используйте set JRUBY_OPTS=--1.9 .

При использовании warbler для упаковки приложения в качестве военного файла, версия может быть установлена ​​путем запуска:

 warble config 

который создает файл config/warble.rb . Этот файл содержит много комментариев о том, как настроить камышевки, и в частности:

  # Set JRuby to run in 1.9 mode. # config.webxml.jruby.compat.version = "1.9" 

Раскомментируйте вторую строку, удалив # и повторно упакуйте свою войну с помощью команды warble .

Если вы создаете jruby из java:

 RubyInstanceConfig config = new RubyInstanceConfig(); config.setCompatVersion(CompatVersion.Ruby1_9); Ruby runtime = Ruby.newInstance(config) 

(Благодаря bbrowning на канале #jrubyc irc)

Давайте будем гением компьютера.