我有一個Ruby文件,如下所示:JRuby的嵌入式模塊和類
module Example
class Myclass
def t_st
"Hello World!"
end
end
end
現在如果這只是一類我將能夠使用Java代碼:
ScriptEngine jruby = new ScriptEngineManager().getEngineByName("jruby");
jruby.eval(new BufferedReader(new FileReader("example.rb")));
Object example = jruby.eval("Myclass.new");
然而,這個類放在一個模塊中。調用相同的代碼如上述產生錯誤:
Exception in thread "main" org.jruby.embed.EvalFailedException: uninitialized constant myclass
此外,調用:
Object example = jruby.eval("Example");
該模塊沒有返回錯誤。所以人們會認爲這遵循Ruby的格式。
Object example = jruby.eval("Example::myclass.new");
然而,我仍然得到了和以前一樣的錯誤。
任何人都可以幫忙嗎?由於JRuby上的文檔很少?
謝謝
注意:您的Ruby類名必須以大寫字母開頭。 MyClass沒問題,myclass沒有。 – 2010-03-30 20:28:34
你沒有複製我只寫了出來。我現在改變了它。 sudo代碼比任何東西 – 2010-03-30 20:42:04