groovy 之 java调用groovy
发布时间:2020-12-14 17:04:57 所属栏目:大数据 来源:网络整理
导读:java代码中执行groovy代码 package test;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;import javax.script.ScriptException;public class ScriptExcuteUtil {public ScriptExcuteUtil() {}/** * @param args */public static
java代码中执行groovy代码 package test; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; public class ScriptExcuteUtil { public ScriptExcuteUtil() { } /** * @param args */ public static void main(String[] args) { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("groovy"); try { System.out.println("calling groovy from java start"); engine.put("name","VerRan"); engine.eval("println "${name}"+"你好";name=name+'!'"); System.out.println(engine.get("name")); System.out.println("calling groovy from java end"); engine.eval(""); } catch (ScriptException e) { e.printStackTrace(); } } } ? ? package test; import groovy.lang.GroovyClassLoader; import java.io.File; public class InvokeGroovy { public static void main(String[] args) { ClassLoader cl = new InvokeGroovy().getClass().getClassLoader(); GroovyClassLoader groovyCl = new GroovyClassLoader(cl); try { // 从文件中读取 Class groovyClass = groovyCl.parseClass(new File( "C:mysource2GroovyLearngroovyfistFoo.groovy")); Class groovyClass2 = groovyCl .parseClass("package org.openjweb.groovy; rn import test.IFoo;rn class Foo implements IFoo {public Object run(Object foo) {return ((Integer)foo).intValue()+3}}"); IFoo foo = (IFoo) groovyClass.newInstance(); System.out.println(foo.run(new Integer(2))); IFoo foo2 = (IFoo) groovyClass2.newInstance(); System.out.println(foo2.run(new Integer(2))); } catch (Exception e) { e.printStackTrace(); } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |