Sto cercando di incorporare Groovy in una grande applicazione Java.GroovyShell: esecuzione incorporata
L'applicazione Java dovrebbe caricare alcuni script Groovy di utilità all'avvio.
L'applicazione dovrebbe quindi eseguire altri script più volte. È inoltre necessario inserire del codice in una GUI ed eseguirlo su richiesta dell'utente.
Il problema che sto affrontando è questo:
Sto caricando lo script di avvio in questo modo:
GroovyShell gShell = new GroovyShell();
gShell.evaluate(new FileReader("scripts/autoload.groovy"));
Supponiamo che la mia autoload.groovy contiene:
def prnt(m) {
println("From Groovy: " + m);
}
Questo funziona bene . Ma quando voglio eseguire un comando utente che utilizza:
gShell.evaluate("prnt 66");
ottengo l'errore: groovy.lang.MissingMethodException: No signature of method: Script2.prnt() is applicable for argument types: (java.lang.Integer) values: [66]
Come può il mio accesso script utente i metodi già caricato?
Nota: ho anche provato "autoload.prnt 88" e ho ancora ricevuto l'errore.