1

我使用以下命令安装了 rubeus:

jruby -S gem install rubeus
bundle install

然后当我执行:

include Rubeus::Swing

我收到此错误:

undefined method `to_a' for "include Rubeus::Swing\n":String

所以我认为 gem 安装了错误的版本,因为方法 to_a 在 Ruby 1.9.x 中不再支持字符串

我怎样才能解决这个问题?


代码:

require 'rubygems'
require 'java'
require 'rubeus'

include Rubeus::Swing #it's where everything crashes :-)

更新

看来问题出在jirb上,我将代码保存在一个文件中并用jruby运行代码,一切顺利......我很困惑,jirb有什么问题?

4

1 回答 1

2

我不知道为什么,但我可以确认 Rubeus 打破了 jirb:

$ irb-jruby-1.7.3
irb(main):001:0> 需要“rubeus”
=> 真
irb(主):002:0> 1
NoMethodError:“1\n”的未定义方法“to_a”:字符串

当以非交互方式解释脚本时,事情似乎确实运行良好。一种解决方法是简单地添加to_aString

class String
  def to_a
    lines.to_a
  end
end
# => nil
require 'rubeus'
# => true
include Rubeus::Swing
# => Object

到目前为止,我注意到的唯一问题是它require 'rubeus'仍然以第二种方式破坏 jirb:我现在需要为每个输入按两次 Enter。

于 2013-04-26T21:26:00.707 回答