Java调用Groovy

一、简介

Groovy是基于jvm的脚本语言。

二、demo

maven使用加上依赖

<dependency>
    <groupId>org.codehaus.groovy</groupId>
    <artifactId>groovy</artifactId>
</dependency>

随便建个脚本文件

println 'I am ' + name;
println 'My age is ' + age;
System.out.println(dd);

然后跑main方法

public static void main(String[] args) throws Exception {
    Binding binding = new Binding();
    GroovyShell shell = new GroovyShell(binding);
    binding.setVariable("name", "bo");
    binding.setVariable("age", "23");
    binding.setVariable("dd", 11);
    //1. 执行包含脚本的文件
    File file = new File("D:\\testGro.sh");
    shell.evaluate(file);
    //2. 执行脚本
    binding.setVariable("strs", new String[]{"A", "B", "C"});
    String join = (String) shell.evaluate("def call(){return strs.join('-')}; call()");
    System.out.println(join);
    //3. 执行java代码
    shell.evaluate("String str = \"one str\";\n" +
            "        System.out.println(str);");
    shell = null;
    binding = null;
}

执行完

I am bo
My age is 23
11
A-B-C
one str

三、使用场景

一些业务流程使用脚本,有奇效。

原文发布于微信公众号 - 叔叔的博客(gh_b2b55a55dca8)

原文发表时间:2018-05-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏智能大石头

实体处理模块IEntityModule

在2015年7月16日,XCode新增了实体处理模块IEntityModule,用于拦截实体对象添删改操作。 该接口参考IHttpModule设计理念,横切在实...

202100
来自专栏大内老A

ASP.NET Core管道深度剖析(3):管道是如何处理HTTP请求的?

我们知道ASP.NET Core请求处理管道由一个服务器和一组有序的中间件组成,所以从总体设计来讲是非常简单的,但是就具体的实现来说,由于其中涉及很多对象的交互...

31250
来自专栏Jackson0714

03.如何实现一个遥控器-命令模式

37170
来自专栏智能大石头

实体处理模块IEntityModule

在2015年7月16日,XCode新增了实体处理模块IEntityModule,用于拦截实体对象添删改操作。

12800
来自专栏更流畅、简洁的软件开发方式

数据访问函数库 for ado.net2.0

前言 源代码和调用演示下载:http://www.cnblogs.com/jyk/archive/2008/04/25/1170979.html 数据访问函...

19770
来自专栏木宛城主

Unity应用架构设计(9)——构建统一的 Repository

谈到 『Repository』 仓储模式,第一映像就是封装了对数据的访问和持久化。Repository 模式的理念核心是定义了一个规范,即接口『Interfa...

23560
来自专栏逍遥剑客的游戏开发

Nebula3学习笔记(8): 脚本系统

15040
来自专栏Core Net

ASP.NET Core 2.0 : 八.图说管道,唐僧扫塔的故事

22840
来自专栏王金龙的专栏

分布式系统ID生成方案汇总

本文只整理MySQL的自增字段方案,Oracle和SQL Server的自增长方案就不介绍了。

24120
来自专栏京东技术

飞哥教你使用异步编程提升服务性能

35840

扫码关注云+社区

领取腾讯云代金券