Я пытаюсь внедрить groovy в большое приложение Java.
Приложение Java должно загружать некоторые служебные сценарии Groovy при запуске.
Затем приложение должно запускать другие сценарии несколько раз. Также необходимо ввести некоторый код в графическом интерфейсе и выполнить его по запросу пользователя.
Проблема, с которой я столкнулся, заключается в следующем:
Я загружаю сценарий запуска следующим образом:
GroovyShell gShell = new GroovyShell();
gShell.evaluate(new FileReader("scripts/autoload.groovy"));
Предположим, мой autoload.groovy содержит:
def prnt(m) {
println("From Groovy: " + m);
}
Это прекрасно работает. Но когда я хочу запустить пользовательскую команду, используя:
gShell.evaluate("prnt 66");
Я получаю сообщение об ошибке:
groovy.lang.MissingMethodException: No signature of method: Script2.prnt() is applicable for argument types: (java.lang.Integer) values: [66]
Как мой пользовательский скрипт может получить доступ к уже загруженным методам?
Примечание. :Я также попробовал "autoload.prnt 88" и все равно получаю ошибку.