我使用以下命令安装了rubeus:
jruby -S gem install rubeus
bundle install
然后当我执行时:
include Rubeus::Swing
我收到此错误:
undefined method `to_a' for "include Rubeus::Swing\n":String
所以我认为gem安装了错误的版本,因为Ruby 1.9.x中不再支持方法to_a用于字符串
我该如何解决这个问题?
代码:
require 'rubygems'
require 'java'
require 'rubeus'
include Rubeus::Swing #it's where everything crashes :-)
更新
似乎问题在于jirb,我将代码保存在一个文件中并用jruby运行代码,一切顺利......我很困惑,jirb有什么问题?
答案 0 :(得分:2)
我不知道为什么,但我可以确认Rubeus打破了jirb:
$ irb-jruby-1.7.3 irb(main):001:0> require 'rubeus' => true irb(main):002:0> 1 NoMethodError: undefined method `to_a' for "1\n":String
当非交互式解释脚本时,事情似乎正常。一种解决方法是简单地将to_a
添加回String
:
class String
def to_a
lines.to_a
end
end
# => nil
require 'rubeus'
# => true
include Rubeus::Swing
# => Object
到目前为止,我注意到的唯一问题是require 'rubeus'
仍然以第二种方式打破jirb:我现在需要按Enter键两次输入。