`
ivan19861025
  • 浏览: 41918 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java调用groovy脚本

    博客分类:
  • Java
阅读更多
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并实时加载数据库中的Groovy脚本是一种强大而灵活的解决方案,特别适用于需要频繁调整业务逻辑或进行热部署的场景。通过结合Java的稳定性和Groovy的动态性,我们可以构建出更适应变化的系统...

    干货:Jenkins Pipeline调用shell、python、java、groovy脚本的正确使用姿势.doc

    Jenkins Pipeline 调用 shell、python、java、groovy 脚本的正确使用姿势 Jenkins Pipeline 是一个强大的自动化工具,可以帮助开发者自动化构建、测试和部署流程。在设计 Pipeline 脚本的过程中,经常会遇到调用...

    groovy和Java相互调用1

    Java调用Groovy类则稍微复杂一些,通常有两种主要方法: 1. **方法1:直接调用** - 如果你的开发环境(如IntelliJ IDEA或Eclipse)已经安装了Groovy解释器插件,那么可以直接在Java代码中像调用Java类一样调用...

    Java中使用Groovy的三种方式

    本文将深入探讨在Java项目中使用Groovy的三种主要方式,并阐述它们各自的优势和应用场景。 一、作为嵌入式脚本 Java 6引入了JSR 223(Scripting for the Java Platform),允许在Java程序中直接执行脚本语言。...

    Java调用Groovy

    这篇博客文章“Java调用Groovy”可能会探讨如何在Java代码中执行Groovy脚本,以及这样做的优势和实践方法。 首先,Java可以通过`GroovyShell`或`GroovyScriptEngine`来执行Groovy脚本。`GroovyShell`是Groovy提供的...

    基于groovy实现 java脚本动态编译、部署、发布;可以通过脚本直接调用dubbo接口.zip

    本文将深入探讨如何基于Groovy实现Java脚本的动态编译、部署和发布,并且介绍如何通过Groovy脚本直接调用Dubbo接口,从而提高开发效率和灵活性。 Groovy是一种基于Java平台的强大的动态编程语言,它具有简洁的语法...

    Java/groovy脚本程序调用被测试应用bean

    脚本通过上下文applicationcontext获取被测试应用bean,从而可以进行接口内容获取等操作。目前该方式主要运用到性能平台脚本搭建、代码深度测试、接口测试、白盒测试等多方面。...支持Java、groovy脚本。

    java调用脚本语言笔记(jython,jruby,groovy)

    在Java项目中,使用Groovy通常更加方便,因为不需要额外的引擎,可以直接创建`GroovyShell`或`GroovyScriptEngine`对象: ```java import groovy.lang.GroovyShell; import groovy.lang.Script; GroovyShell shell...

    groovy脚本执行工具.zip

    总的来说,这个“groovy脚本执行工具”是一个对于Java开发者非常有用的工具,它简化了Groovy脚本的执行流程,便于在日常开发和测试中快速使用Groovy。无论你是新手还是经验丰富的开发者,都可以利用这个工具快速上手...

    Groovy脚本:Java平台的动态编程利器

    本文将详细介绍Groovy脚本的基本概念、特点、用途以及如何在Java平台中使用Groovy进行动态编程。 Groovy脚本语言以其简洁的语法、动态特性和与Java的紧密集成,在Java平台中发挥着重要作用。从动态脚本执行到构建...

    groovy脚本实现对数据库的增删改查

    在“groovy脚本实现对数据库的增删改查”这个主题中,我们将深入探讨如何使用Groovy来执行常见的数据库操作。首先,我们需要连接到数据库。在Groovy中,我们可以利用JDBC(Java Database Connectivity)API来实现这...

    SpringBoot-Gradle-Maven-Java-Groovy

    SpringBoot、Gradle、Maven、Java和Groovy是Java生态...- 在测试和配置管理中使用Groovy,如Spock测试框架和Grails配置。 理解并熟练掌握这些技术,有助于提升Java开发者的专业技能,更好地适应现代企业级开发的需求。

    java 动态脚本语言 精通 Groovy

    9. **Scripting in Java Applications**:Groovy可以嵌入到Java应用中作为脚本语言使用,例如在服务器端处理HTTP请求,或者作为配置文件来动态改变应用行为。 10. **持续集成与构建工具**:Groovy也是构建工具如...

    JVM 动态执行Groovy脚本的方法

    本文将详细讲解如何使用JVM动态执行Groovy脚本的方法,主要包括利用JShell执行代码、调试模式下动态执行代码以及利用javax.script包执行Groovy脚本。以下是对各知识点的详细说明。 1. 利用JShell执行代码 Java 9 ...

    java与groovy互相调用1

    在实际开发中,这种互操作性使开发者可以根据需求灵活选择语言,比如在配置脚本、测试代码或者复杂逻辑中使用Groovy,而在性能关键的部分使用Java。这种混合编程模式可以提高开发效率,同时保证系统的稳定性和性能。

    hugo110-java_run_groovy-master_java_

    标题“hugo110-java_run_groovy-master_java_”表明这是一个关于使用Java运行Groovy脚本的项目,可能是某个GitHub仓库的克隆或归档。描述中提到,这个环境是为了方便用户(可能是开发者)实践Groovy语言,并为后续的...

    groovy脚本语言bin

    此外,Groovy还与Java无缝集成,可以调用所有Java库,并且Java代码也可以直接嵌入到Groovy脚本中。 总之,Groovy脚本语言bin提供的1.6.5版本是一个全面的开发包,旨在支持开发人员在JVM上快速开发、测试和部署...

    Groovy大量计算导致oom的解决办法

    问题原因分析:使用ScriptEngine.eval每次都会对脚本进行编译,生成一个新的类,被GroovyClassLoader加载,大量执行计算后,将导致被加载的类数量不断增加,最终OOM。 解决办法:对计算的表达式expression进行预...

    使用groovy脚本文件作为任务,不像插件那么繁重 支持http服务器作为镜像进行管理

    标题中的"使用Groovy脚本文件作为任务"是指在开发环境中,使用Groovy语言编写脚本来执行特定的自动化任务,如构建、测试或部署等。Groovy脚本具有高度的灵活性和可读性,可以无缝集成到Java项目中,因为它完全兼容...

    java应用简单嵌入脚本模块

    这里我们将深入探讨如何使用Groovy脚本语言作为嵌入式脚本模块,以及它在Java开发中的应用。 Groovy是一种基于Java平台的、面向对象的脚本语言,它具有简洁的语法,易于学习,同时又充分利用了Java的生态系统。由于...

Global site tag (gtag.js) - Google Analytics