java groovyshell_Java集成groovy之GroovyShell、GroovyScriptEngine、GroovyClassLoader

本文主要介绍了如何在Java中集成Groovy,通过GroovyClassLoader、GroovyShell和GroovyScriptEngine三种方式加载并执行Groovy脚本,并进行了性能测试。测试结果显示了它们在执行相同任务时所需的时间。
摘要由CSDN通过智能技术生成

importgroovy.lang.GroovyClassLoader;importgroovy.lang.GroovyObject;importgroovy.lang.GroovyShell;importgroovy.lang.Script;importgroovy.util.GroovyScriptEngine;importgroovy.util.ResourceException;importgroovy.util.ScriptException;importjava.io.File;importjava.io.IOException;/*** Created by Jxy on 2018/12/24 11:28

* 测试GroovyShell、GroovyClassLoader、GroovyScriptEngine 性能*/

public classGroovyIntoJavaDemo1 {//测试次数

private static final int num = 10000;public static void main(String[] args) throwsIOException, ResourceException, ScriptException {/*GroovyClassLoader*/

long start =System.currentTimeMillis();

GroovyClassLoader loader= newGroovyClassLoader();

Class aClass= loader.parseClass(new File("src/Groovy/com/baosight/groovy/CycleDemo.groovy"));try{

GroovyObject instance=(GroovyObject) aClass.newInstance();

instance.invokeMethod("cycle",num);

}catch(InstantiationException e) {

e.printStackTrace();

}catch(IllegalAccessException e) {

e.printStackTrace();

}long end = System.currentTimeMillis()-start;/*GroovyShell*/

long start1 =System.currentTimeMillis();new GroovyShell().parse( new File( "src/Groovy/com/baosight/groovy/CycleDemo.groovy") )

.invokeMethod("cycle",num);long end1 = System.currentTimeMillis()-start1;/*GroovyScriptEngine*/

long start2 =System.currentTimeMillis();

Class script= new GroovyScriptEngine("src/Groovy/com/baosight/groovy/")

.loadScriptByName("CycleDemo.groovy");try{

Script instance=(Script) script.newInstance();

instance.invokeMethod ("cycle",newObject[]{num});

}catch(InstantiationException e) {

e.printStackTrace();

}catch(IllegalAccessException e) {

e.printStackTrace();

}long end2 = System.currentTimeMillis()-start2;

System.out.println(" GroovyClassLoader时间:"+end );

System.out.println(" GroovyShell时间:"+end1 );

System.out.println(" GroovyScriptEngine时间:"+end2 );

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值