现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

groovy的三种使用方法

2015-07-18 10:27 工业·编程 ⁄ 共 2714字 ⁄ 字号 评论 1 条

1、groovyShell 脚本语言运用,支持表达式及脚本文件:

def run(foo) {

       println 'Hello World!'

       x = 123

       foo * 10

}

run foo

public class TestGroovyShell {

/**

  * @param args

  */

public static void main(String[] args) {

  try {

   Binding binding = new Binding();

   binding.setProperty("foo", new Integer(2));

   GroovyShell shell = new GroovyShell(binding);

   Object value = shell.evaluate(new File("src/groovy/GroovyShellHellow.groovy"));

   System.out.println(value);

  } catch (CompilationFailedException e) {

   e.printStackTrace();

  } catch (IOException e) {

   e.printStackTrace();

  }

    }

}

相关阅读

    ----Groovy简介

2、在Java中动态加载和运行Groovy代码

package groovy;

/**

* @author zhangchao02

*

*/

public class talk{

public String say(String talkContext) {

  System.out.println("my say:" + talkContext);

  return talkContext;

}

}

public class TestGroovyShell {

/**

  * @param args

  */

public static void main(String[] args) {

  try {

   Binding binding = new Binding();

   binding.setProperty("foo", new Integer(2));

   GroovyShell shell = new GroovyShell(binding);

   Object value = shell.evaluate(new File("src/groovy/GroovyShellHellow.groovy"));

   System.out.println(value);

  } catch (CompilationFailedException e) {

   e.printStackTrace();

  } catch (IOException e) {

   e.printStackTrace();

  }

    }

}

public class GroovyHelper {

    private static final Logger logger = LoggerFactory.getLogger(GroovyHelper.class);

private static GroovyClassLoader loader;

static {

  ClassLoader cl = new GroovyHelper().getClass()

    .getClassLoader();

  loader = new GroovyClassLoader(cl);

}

private GroovyHelper() {

};

public static GroovyObject getGroovyObject(String filePath) {

  File groovyFile = new File(filePath);

  if(!groovyFile.exists()){

   logger.error("GroovyHelper getGroovyObject groovyFile is not exists filePath={}", filePath);

   return null;

  }

  GroovyObject groovyObject = null;

  try {

   loader.parseClass(groovyFile);

   Class<?> groovyClass = loader.parseClass(groovyFile);

   groovyObject = (GroovyObject) groovyClass.newInstance();

  } catch (Exception e) {

   e.printStackTrace();

  }

  return groovyObject;

}

public static Object invokeMethod(GroovyObject groovyObject,

   String paramString, Object paramObject) {

  Object result = groovyObject.invokeMethod(paramString, paramObject);

  return result;

}

public static Object invokeMethodShell(){

  Object result = null;

  return result;

}

}

3、groovy 脚本引擎:

 public static void main(String[] args) {

  String[] roots  =   new  String[]  {"src/groovy/"} ;

  try {

   GroovyScriptEngine gse  =   new  GroovyScriptEngine(roots);

   Binding binding = new Binding();

   binding.setProperty("foo", new Integer(2));

   gse.run( "GroovyShellHellow.groovy" , binding);

   System.out.println(binding.getVariable("x"));

   System.out.println(binding.getVariable("foo"));

  } catch (IOException e) {

   // TODO Auto-generated catch block

   e.printStackTrace();

  } catch (ResourceException e) {

   // TODO Auto-generated catch block

   e.printStackTrace();

  } catch (ScriptException e) {

   // TODO Auto-generated catch block

   e.printStackTrace();

  }

}

目前有 1 条留言    访客:0 条, 博主:0 条 ,引用: 1 条

    外部的引用: 1 条

    • Groovy与Java的诸多区别 | 求索阁

    给我留言

    留言无头像?