2009-08-18 6 views
0

In Python kann ich mit exec (string) beliebigen Code ausführen. Wie kann ich das in Groovy machen? Ich möchte, dass der Code im Kontext meiner aktuell laufenden Anwendung ausgeführt wird, nicht so, als würde ich die Groovy-Shell verwenden.Groovy Äquivalent zu Pythons exec-Anweisung?

"cmdstring".execute().text 

Sie können auch ausführen einige Groovy-Code in einem String mit eingewickelt:

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

Siehe http://groovy.codehaus.org/api/groovy/util/Eval.html

Antwort

5

Um ein Kommandozeilen-Programm dynamisch in Groovy ausführen übergeben Sie auch Ihre aktuellen Kontextparameter über den Bindemechanismus an die Groovy Shell.

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

Dies scheint nicht zu funktionieren, ich möchte tatsächlichen Code, kein Befehlszeilenprogramm ausführen. – Jared

+1

Sorry, ich muss auf Crack oder so etwas gewesen sein. Sie haben jetzt eine echte Antwort :) –

1

Sie können

Verwandte Themen