Intento incrustar groovy en una gran aplicación Java.GroovyShell: ejecución incrustada
La aplicación Java debe cargar algunos scripts Groovy de utilidad al inicio.
La aplicación debería ejecutar otros scripts varias veces. También es necesario ingresar algún código en una GUI y ejecutarlo a petición del usuario.
El problema que estoy enfrentando es la siguiente:
Estoy cargando el script de inicio de la siguiente manera:
GroovyShell gShell = new GroovyShell();
gShell.evaluate(new FileReader("scripts/autoload.groovy"));
Supongamos que mi autoload.groovy contiene:
def prnt(m) {
println("From Groovy: " + m);
}
Esto funciona bien . Pero cuando quiero ejecutar un comando de usuario usando:
gShell.evaluate("prnt 66");
me sale el error: groovy.lang.MissingMethodException: No signature of method: Script2.prnt() is applicable for argument types: (java.lang.Integer) values: [66]
¿Cómo puede mi script de usuario de acceso a los métodos ya cargado?
Nota: También he intentado "autoload.prnt 88", y sigo recibiendo el error.