0

使用 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编译器生成的字节码一一对应,还是自己读取字节码比较好?我实际上想看看 jruby 如何在字节码级别处理动态方法调度。任何提示将不胜感激。
4

1 回答 1

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

于 2013-10-07T16:08:20.063 回答