我有一个字符串输入,它是一个groovy脚本,它包含一个或多个方法,如:
def printHello()
{
println("Inside printHello()")
}
def setData(String str)
{
println("Incoming data : " + str)
}这是一个字符串格式,这是我的输入。
从Java程序中,我想使用GroovyScriptEngine加载这个字符串。
我能够成功地使用GroovyClassLoader加载和调用上述方法。
new GroovyClassLoader().parseClass(scriptStr)不幸的是,通过使用GroovyScriptEngine,,我无法加载字符串。
我将这个字符串输入存储到一个临时的groovy文件中,并试图加载。起作用了。
但是我的意图是使用GroovyScriptEngine直接加载字符串输入。
是否有任何方法将groovy脚本内容作为字符串输入加载到GroovyScriptEngine,而不是使用文件路径?
请帮我这个..。
注:这是我对GroovyClassLoader和GroovyScriptEngine的比较研究。
发布于 2016-06-14 07:32:09
GroovyClassLoader可以直接加载类,但不能处理它的依赖关系。GroovyScriptEngine只能加载脚本,而不能加载类。但是,它可以处理类依赖和热重加载。
你可以在这里找到细节。http://groovy-lang.org/integrating.html
https://stackoverflow.com/questions/37805056
复制相似问题