如何让JRuby 1.6默认使用Ruby 1.9?

79
什么是使JRuby默认以1.9模式运行的最佳方法?
例如,我想要运行rake test而不是jruby --1.9 -S rake test
谢谢。
6个回答

109

使用 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

另一个解决方案是将以下行(和其他设置)放入您的~/.jrubyrc文件中。

compat.version=1.9

18

RVM现在可以默认使用默认模式构建JRuby/Rubinius:

rvm install jruby-1.6.7-d19 --1.9
rvm install rbx-2.0.testing-d19 --1.9
后缀 -d19 可以省略,我只是用它来区分1.81.9模式下的ruby。
在 JRuby/Rubinius 的下一个重大发布版本中,--1.9 模式将成为默认模式,因此您可以使用 --1.8 rvm switch 来确保您正在使用1.8更新于2012-05-25: Jruby 1.7.0.preview1 已发布,默认情况下为1.9!

11
在Windows系统中,应使用set JRUBY_OPTS=--1.9 而不是其他方式。

8
当使用warbler将应用程序打包为war文件时,可以通过运行以下命令来设置版本:

warbler -v <version>

warble config

这将创建一个config/warble.rb文件。该文件包含有关如何配置warbler的大量注释,特别是:

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

通过删除#取消第二行的注释,并使用warble命令重新打包您的war文件。


6

如果您正在从Java创建jruby:

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

(Thanks to bbrowning on the #jrubyc irc channel)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接