web-dev-qa-db-fra.com

Comment rendre JRuby 1.6 par défaut à Ruby 1.9?

quelle est la meilleure façon de faire fonctionner JRuby en mode 1.9 par défaut?

c'est-à-dire que je veux exécuter rake test au lieu de jruby --1.9 -S rake test

Je vous remercie

79
arkadiy

Utilisez le JRUBY_OPTS variable d'environnement. JRUBY_OPTS contient une liste d'arguments qui sont ajoutés à tous les arguments spécifiés sur la ligne de commande.

Par exemple (sous 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. .. 
108
toddsundsted

Une autre solution consiste à mettre la ligne suivante (et d'autres paramètres) dans votre fichier ~/.jrubyrc

compat.version=1.9
22
Alex Blakemore

RVM permet maintenant de construire JRuby/Rubinius avec le mode par défaut défini par défaut:

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

Le suffixe -d19 Peut être omis, je l'utilise uniquement pour distinguer les rubis en mode 1.8 et 1.9.

Le mode --1.9 Deviendra la valeur par défaut dans les prochaines versions majeures de JRuby/Rubinius, vous pouvez donc vous assurer que vous utiliserez 1.8 avec le commutateur rvm --1.8.

MISE À JOUR 2012-05-25: Jruby 1.7.0.preview1 est sorti, c'est 1.9 par défaut!

18
mpapis

Sous Windows, utilisez set JRUBY_OPTS=--1.9 au lieu.

11
taiansu

Lorsque vous utilisez warbler pour empaqueter une application en tant que fichier war, la version peut être définie en exécutant:

warble config

ce qui crée un config/warble.rb fichier. Ce fichier contient de nombreux commentaires sur la façon de configurer la fauvette, et en particulier:

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

Décommentez la deuxième ligne en supprimant le #, et reconditionnez votre war avec la commande warble.

Si vous créez jruby à partir de Java:

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

(Merci à bbrowning sur la chaîne #jrubyc irc)

6
James Moore