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),作者:吉吉

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Jpopulator测试数据生成工具

    叔叔
  • Eureka Server过源码

    Eureka Server启动 入口EurekaServerInitializerConfiguration @Configuration class Eur...

    叔叔
  • spring cloud bus 配置实时刷新问题

    一、问题 当修改配置中心的配置后,需要重新加载配置才能生效,这样就比较麻烦。 为了实现配置中心的实时刷新,需要用到spring cloud bus,即消息总线。...

    叔叔
  • 【小家Java】Java第二API之apache的commons-lang3工具包史上最完整的讲解(书写优雅代码必备工具)

    apache提供的众多commons工具包,号称Java第二API,而common里面lang3包更是被我们使用得最多的。因此本文主要详细讲解lang3包里面几...

    YourBatman
  • 力扣LeetCode,唯一摩尔斯密码词

    1、国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a" 对应 ".-", "b" 对应 "-...", "c...

    别先生
  • flying-saucer + iText + Freemarker实现pdf的导出, 支持中文、css以及图片

          项目中有个需求,需要将合同内容导出成pdf。上网查阅到了 iText , iText 是一个生成PDF文档的开源Java库,能够动态的从XML或者数...

    青石路
  • 手机基带芯片的故事

    美国时间2019年4月16日,英特尔宣布放弃5G基带Modem业务。iPhone回归高通的消息放出,高通股票一小时内暴涨近25%。

    镁客网
  • 点线图和阶梯图的画法

    在普通折线图的基础上,有两种特殊的折线图,分别是阶梯图和点线图,首先来看下阶梯图,下图是一个典型的生存曲线

    生信修炼手册
  • 干货 | Java8 新特性指导手册

    小伙伴们,Java 版本都到 12 啦,我发现还有很多小伙伴对 8 的新特性不是很了解。

    Java技术江湖
  • 关于Shell你想知道的都在这儿

    0x01 前奏说明 很多时候,不到万不得已的情况下,我们完全没必要非往目标机器里传一堆工具,先不说由于各种防护[不仅仅是杀软的问题],传工具困难重重,有时由于自...

    FB客服

扫码关注云+社区

领取腾讯云代金券