2012年3月25日日曜日

groovyで文字列内のgroovyスクリプトを実行する

groovyで文字列内のgroovyスクリプトを実行するには、以下のコードを実行します。

import org.codehaus.groovy.runtime.*

Binding binding = new Binding()
// 標準出力を設定
buf = new StringWriter()
binding.setProperty("out", buf)
groovyShell = new GroovyShell(binding)

result=null
try
{
  result = groovyShell.run("println(args[0])\n return(0)", "message.groovy", ["arg1", "arg2"])
}
catch(Throwable ex)
{
  def bufex = new StringWriter()
  StackTraceUtils.printSanitizedStackTrace(ex, new PrintWriter(bufex))
  buf = ex.getMessage() + "\n" + bufex
  result = -1
}
// スクリプト実行結果コード
println "result:" + result
println "--------"
// スクリプトの出力
println buf
println "--------"

0 件のコメント:

コメントを投稿