从jruby生成java代码时出现问题

时间:2013-10-07 13:36:05

标签: jruby

使用jruby 1.7.3生成.java文件时遇到问题。这是一个例子:

class Duck
    def quack()
        puts "quack!";
    end
end
def quack_it(duck)
    duck.quack
end
a = Duck.new
quack_it(a)

执行时

jrubyc --java Test.rb我收到以下编译错误:

Failure during compilation of file DuckExample_simple.rb:
undefined method `new_method' for nil:NilClass.

因此,我有两个问题:

  1. 这里有什么问题?
  2. 我想生成.java文件,以便查看如何将JRuby代码转换为字节码,而不是读取字节码本身我想读取java代码。生成的java代码是否与AOT jruby编译器生成的字节码1对1,或者最好是读取字节码本身?我实际上想看看jruby如何处理字节码级别的动态方法调度。任何提示都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我不使用jruby,所以我真的不是最好的人,但不管怎么说这是我的2美分。

如果您只是将一个简单的类放入该文件中,它将起作用。所以试试

class Duck
  def quack()
    puts "quack!"
  end
end

它会像你期望的那样创建一个Duck.java文件,它回答了你的第二个问题。这里还有关于生成文件的精彩文章:http://rhnh.net/2012/10/20/guice-in-your-jruby

我猜这个命令有些破碎了。最好在jruby问题跟踪器上打开一个问题:http://jira.codehaus.org/browse/JRUBY