我正在尝试将 groovy 嵌入到大型 Java 应用程序中。
Java 应用程序应该在启动时加载一些实用的 Groovy 脚本。
然后应用程序应该多次运行其他脚本。还需要在 GUI 上输入一些代码并根据用户请求执行它。
我面临的问题是:
我正在加载这样的启动脚本:
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”,但仍然出现错误。