import groovy.lang.GroovyClassLoader;
import java.lang.reflect.Method;
public class GroovyUtils {
public static void main(String[] args) {
StringBuffer scriptBuff = new StringBuffer();
String enter = "\r\n";
scriptBuff.append("class HelloWorld {").append(enter);
scriptBuff.append(" String sayHello(String name){").append(enter);
scriptBuff.append(" return \"hello, \" + name").append(enter);
scriptBuff.append(" }").append(enter);
scriptBuff.append("}").append(enter);
System.out.println(scriptBuff.toString());
GroovyClassLoader groovyCl = new GroovyClassLoader(GroovyUtils.class.getClassLoader());
Class groovyClass = groovyCl.parseClass(scriptBuff.toString());
try {
Object obj = groovyClass.newInstance();
Method meth = obj.getClass().getMethod("sayHello", new Class[]{String.class});
System.out.println(meth.invoke(obj, new Object[]{"张三"}));
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
控制台会打出
class HelloWorld {
String sayHello(String name){
return "hello, " + name
}
}
hello, 张三
另一种方式的调用
long t1 = System.currentTimeMillis();
String script = "i = new HashMap(); i.put('key1', '1'); return i;";
GroovyShell gs = new GroovyShell();
Object obj = gs.evaluate(script);
System.out.println(obj);
long t2 = System.currentTimeMillis();
System.out.println(t2 - t1 + "ms");
System.out.println(gs.evaluate(script));
System.out.println(System.currentTimeMillis() - t2 + "ms");
分享到:
相关推荐
总的来说,Java调用Groovy并实时加载数据库中的Groovy脚本是一种强大而灵活的解决方案,特别适用于需要频繁调整业务逻辑或进行热部署的场景。通过结合Java的稳定性和Groovy的动态性,我们可以构建出更适应变化的系统...
Jenkins Pipeline 调用 shell、python、java、groovy 脚本的正确使用姿势 Jenkins Pipeline 是一个强大的自动化工具,可以帮助开发者自动化构建、测试和部署流程。在设计 Pipeline 脚本的过程中,经常会遇到调用...
Java调用Groovy类则稍微复杂一些,通常有两种主要方法: 1. **方法1:直接调用** - 如果你的开发环境(如IntelliJ IDEA或Eclipse)已经安装了Groovy解释器插件,那么可以直接在Java代码中像调用Java类一样调用...
本文将深入探讨在Java项目中使用Groovy的三种主要方式,并阐述它们各自的优势和应用场景。 一、作为嵌入式脚本 Java 6引入了JSR 223(Scripting for the Java Platform),允许在Java程序中直接执行脚本语言。...
这篇博客文章“Java调用Groovy”可能会探讨如何在Java代码中执行Groovy脚本,以及这样做的优势和实践方法。 首先,Java可以通过`GroovyShell`或`GroovyScriptEngine`来执行Groovy脚本。`GroovyShell`是Groovy提供的...
本文将深入探讨如何基于Groovy实现Java脚本的动态编译、部署和发布,并且介绍如何通过Groovy脚本直接调用Dubbo接口,从而提高开发效率和灵活性。 Groovy是一种基于Java平台的强大的动态编程语言,它具有简洁的语法...
脚本通过上下文applicationcontext获取被测试应用bean,从而可以进行接口内容获取等操作。目前该方式主要运用到性能平台脚本搭建、代码深度测试、接口测试、白盒测试等多方面。...支持Java、groovy脚本。
在Java项目中,使用Groovy通常更加方便,因为不需要额外的引擎,可以直接创建`GroovyShell`或`GroovyScriptEngine`对象: ```java import groovy.lang.GroovyShell; import groovy.lang.Script; GroovyShell shell...
总的来说,这个“groovy脚本执行工具”是一个对于Java开发者非常有用的工具,它简化了Groovy脚本的执行流程,便于在日常开发和测试中快速使用Groovy。无论你是新手还是经验丰富的开发者,都可以利用这个工具快速上手...
本文将详细介绍Groovy脚本的基本概念、特点、用途以及如何在Java平台中使用Groovy进行动态编程。 Groovy脚本语言以其简洁的语法、动态特性和与Java的紧密集成,在Java平台中发挥着重要作用。从动态脚本执行到构建...
在“groovy脚本实现对数据库的增删改查”这个主题中,我们将深入探讨如何使用Groovy来执行常见的数据库操作。首先,我们需要连接到数据库。在Groovy中,我们可以利用JDBC(Java Database Connectivity)API来实现这...
SpringBoot、Gradle、Maven、Java和Groovy是Java生态...- 在测试和配置管理中使用Groovy,如Spock测试框架和Grails配置。 理解并熟练掌握这些技术,有助于提升Java开发者的专业技能,更好地适应现代企业级开发的需求。
9. **Scripting in Java Applications**:Groovy可以嵌入到Java应用中作为脚本语言使用,例如在服务器端处理HTTP请求,或者作为配置文件来动态改变应用行为。 10. **持续集成与构建工具**:Groovy也是构建工具如...
本文将详细讲解如何使用JVM动态执行Groovy脚本的方法,主要包括利用JShell执行代码、调试模式下动态执行代码以及利用javax.script包执行Groovy脚本。以下是对各知识点的详细说明。 1. 利用JShell执行代码 Java 9 ...
在实际开发中,这种互操作性使开发者可以根据需求灵活选择语言,比如在配置脚本、测试代码或者复杂逻辑中使用Groovy,而在性能关键的部分使用Java。这种混合编程模式可以提高开发效率,同时保证系统的稳定性和性能。
标题“hugo110-java_run_groovy-master_java_”表明这是一个关于使用Java运行Groovy脚本的项目,可能是某个GitHub仓库的克隆或归档。描述中提到,这个环境是为了方便用户(可能是开发者)实践Groovy语言,并为后续的...
此外,Groovy还与Java无缝集成,可以调用所有Java库,并且Java代码也可以直接嵌入到Groovy脚本中。 总之,Groovy脚本语言bin提供的1.6.5版本是一个全面的开发包,旨在支持开发人员在JVM上快速开发、测试和部署...
问题原因分析:使用ScriptEngine.eval每次都会对脚本进行编译,生成一个新的类,被GroovyClassLoader加载,大量执行计算后,将导致被加载的类数量不断增加,最终OOM。 解决办法:对计算的表达式expression进行预...
标题中的"使用Groovy脚本文件作为任务"是指在开发环境中,使用Groovy语言编写脚本来执行特定的自动化任务,如构建、测试或部署等。Groovy脚本具有高度的灵活性和可读性,可以无缝集成到Java项目中,因为它完全兼容...
这里我们将深入探讨如何使用Groovy脚本语言作为嵌入式脚本模块,以及它在Java开发中的应用。 Groovy是一种基于Java平台的、面向对象的脚本语言,它具有简洁的语法,易于学习,同时又充分利用了Java的生态系统。由于...