Как сделать JRuby 1.6 по умолчанию для Ruby 1.9? - PullRequest
79 голосов
/ 21 января 2011

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

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

Спасибо

Ответы [ 6 ]

108 голосов
/ 21 января 2011

Используйте переменную окружения 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...
22 голосов
/ 24 февраля 2012

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

compat.version=1.9
18 голосов
/ 27 февраля 2012

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

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

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

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

ОБНОВЛЕНИЕ 2012-05-25: Вышел Jruby 1.7.0.preview1, по умолчанию 1,9!

11 голосов
/ 29 августа 2011

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

8 голосов
/ 03 марта 2012

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

warble config

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

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

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

6 голосов
/ 25 октября 2011

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

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

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

...