我有一个网络应用程序,大多数情况下使用MRI Ruby和JRuby。但...
当我使用MRI时,我可以这样做。
> rails console
irb(main):001:0> a=Time.new(1,1,1,1,1)
=> 0001-01-01 01:01:00 -0500
即。它会在指定时间内创建一个新的Time对象。
当我切换到JRuby时,我这样做
> rails console
irb(main):001:0> a=Time.new(1,1,1,1,1)
ArgumentError: wrong number of arguments (5 for 0)
from (irb):2: in `evaluate`
from org/jruby/RubyKernel.java:1088 in `eval`
from /home/user/.rbenv/versions/jruby-1.6.4/lib/ruby/1.8/irb.rb:158 in `eval_input`
from /home/user/.rbenv/versions/jruby-1.6.4/lib/ruby/1.8/
....
如何在JRuby中创建一个Time对象,其中包含我控制的年,月,日,小时和分钟?如果是这样,这可以用于MRI Ruby吗?
我不知道这是否相关,但是
irb(main):002:0> RUBY_VERSION
"1.8.7"
我的问题可能是因为我处于1.8.7模式吗?如果是这样,如何将我的rbenv / jruby-1.6.4安装切换为RUBY_VERSION = 1.9.2?
答案 0 :(得分:7)
是的,它与RUBY_VERSION
有关
您需要JRUBY处于1.9模式
您可以通过JRUBY_OPTS
试试这个:
export JRUBY_OPTS=--1.9
或者这个(在Windows上):
set JRUBY_OPTS=--1.9
示例会话(Windows):
> set JRUBY_OPTS=--1.9
> jirb
irb(main):001:0> a=Time.new(1,1,1,1,1)
=> 0001-01-01 01:01:00 +0918