Groovy相当于Python的exec语句?

时间:2009-08-18 18:05:06

标签: groovy

在Python中,我可以使用exec(string)执行任意代码。我怎么能在Groovy中这样做?我希望代码在我当前运行的应用程序的上下文中执行,而不是像我使用的是Groovy shell。

2 个答案:

答案 0 :(得分:5)

在Groovy中动态执行命令行程序:

"cmdstring".execute().text

您还可以执行包含在String中的一些Groovy代码:

def myGroovyCode = 'println "hi"'
Eval.me(myGroovyCode) //prints hi

请参阅http://groovy.codehaus.org/api/groovy/util/Eval.html

答案 1 :(得分:1)

您还可以通过绑定机制将当前上下文参数传递给Groovy Shell。

def myname = 'Inigo Montoya'
def binding = new Binding( [ myname:myname ] )
new GroovyShell( binding ).evaluate( 'println "My Name is " + myname' )