I ont un fichier ruby comme suit:JRuby modules embarqués et des classes
module Example
class Myclass
def t_st
"Hello World!"
end
end
end
maintenant si c'était une classe que je serais en mesure d'utiliser le code java suivant:
ScriptEngine jruby = new ScriptEngineManager().getEngineByName("jruby");
jruby.eval(new BufferedReader(new FileReader("example.rb")));
Object example = jruby.eval("Myclass.new");
Cependant, cette classe repose à l'intérieur d'un module. L'appel le même code que produit l'erreur ci-dessus:
Exception in thread "main" org.jruby.embed.EvalFailedException: uninitialized constant myclass
En outre, appeler:
Object example = jruby.eval("Example");
Le module retourne pas d'erreur. Donc, on pourrait supposer que cela suit le format pour Ruby.
Object example = jruby.eval("Example::myclass.new");
Encore une fois cependant, j'obtiens la même erreur qu'avant.
Quelqu'un peut-il aider? Comme il y a peu de documentation sur JRuby?
Merci
Remarque: il est obligatoire que votre nom de classe Ruby commence par une majuscule. MyClass est ok, myclass ne l'est pas. –
yeh c'est pas copié je viens de l'écrire. Je l'ai changé maintenant cependant. code sudo plus que tout –