【发布时间】:2013-10-16 09:27:47
【问题描述】:
我正在使用 GroovyConsole 来评估从外部来源获得的脚本。所以要评估的代码是动态的,我无法控制它。实际上被写入数据库,我必须将其作为字符串读取。不完美,但就是这样。
我现在在做什么:
private GroovyShell shell
def processScript( def script){
if (script) {
try{
shell.evaluate (script, 'some_random_name')
}catch( e ){
log.warn "Could not process script: $e"
}
}
}
这通常有效。但现在我们得到了一个大脚本(~3000 LOC),它会抛出 java.lang.RuntimeException: Method code too large!,因为脚本大于 64K。
我尝试将脚本转储到文件中并使用 BufferedReader,但它引发了相同的异常。
那么有没有更好的方法从 Groovy 方法中评估动态 Groovy 代码?
【问题讨论】:
标签: grails groovy groovyshell