【问题标题】:How to force Jruby to use inbuilt Ruby 1.9 instead of Ruby 1.8 which is default?如何强制 Jruby 使用内置的 Ruby 1.9 而不是默认的 Ruby 1.8?
【发布时间】:2026-01-04 09:00:02
【问题描述】:

我开发了一个 Ruby on Rails 应用程序,并使用 Jruby 和 Warbler 成功部署在 Weblogic 上(根据 config/warble.rb 中的设置创建一个 war 文件)。

我相信虽然 Jruby 带有内置的 Ruby 1.8 和 1.9,但默认情况下它使用 1.8,我想在 JRuby 中测试 Ruby 1.9 中的相同 rails 应用程序,因为我听说 Ruby 1.9 比 1.8 快得多。我在 warble.rb 中没有看到任何配置选项

这里我们可以指定使用Ruby版本来使用。强制 Jruby 使用 Ruby 1.9 的最佳方法是什么?

此外,我的 Rails 应用程序基于 Rails 2.3.2,在 Ruby 1.9 上运行 rails 应用程序(基于 2.3.2 构建)是否存在兼容性问题?如果是这样,将 rails 升级到 2.3.5 会解决问题吗?

提前致谢。

【问题讨论】:

  • 我也有同样的问题,但带有“irb”的味道。如果我使用“gem install ...”,gem 在 1.9.2 中可用,但在 1.8.7 中不可用。使用 jruby 安装的 irb 控制台很好,但我需要在 cmd.exe 中指定 'irb' 并让它使用 1.9.2 而不是默认值。

标签: ruby-on-rails ruby jruby


【解决方案1】:

您将其指定为命令行上的参数

 jruby --1.9 -v

不知道兼容性问题。

【讨论】:

  • @srboisvert:感谢您的反馈。这可以很好地在命令提示符下启动 jruby。如何在 warble.rb 中指定相同的?
  • 我认为@srboisvert 做对了。我尝试了这种方法来让 irb 运行 1.9。这有效:jruby --1.9 irb。这显示在 jruby 文档网站上:github.com/jruby/jruby/wiki/GettingStarted.
【解决方案2】:

我遵循 JRuby https://github.com/jruby/jruby/wiki/ConfiguringJRuby 的配置指南,它可以工作。

  • 在用户目录(Window 7 上的 C:\Users\tvo1510)中创建 .jrubyrc,内容为: compat.version=1.9

完成了。 干杯,

【讨论】:

  • 您也可以将此文件放在项目目录中以使 1.9 处于开发状态。
【解决方案3】:

在 config/warble.rb 中,寻找这一行:

# config.webxml.jruby.compat.version = "1.9" 

取消注释并重新运行warble。

【讨论】: