У меня есть файл рубиновый следующим образом: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 - нет. –
yeh его не скопировал, я просто написал это. Однако я изменил его. sudo code больше всего на свете –