`
bo_hai
  • 浏览: 567494 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Java 运行时动态编译 Groovy 代码实例

 
阅读更多

使用Groovy编程的最大的特点是:在jvn运行时,动态的编译Groovy代码。下面我们通过一个简单的实例验证这个奇特的功能。代码如下:

import groovy.lang.GroovyShell;
import groovy.lang.Script;

/**
 * @author liuhongbo
 *
 */
public class TestGroovyShell {
    public static void test(String[] args) {
        GroovyShell shell = new GroovyShell();
        //String scriptText = "def mul(x, y) { x * y }\nprintln mul(5, 7)";
        String scriptText = args[0] + "\n" + args[1];
        Script script = shell.parse(scriptText);
        Object result = script.run();
    }
    
    public static void main(String[] args) {
        test(args);
    }
}

 通过程序的代码我们可以看出,在控制台要输入两个参数,参数的内容是 Groovy 代码。代码内容如下:

"def mul(x, y) { x * y } "  "println mul(5, 10)"

   Eclipse 配置如下:



  运行结果输出:50。

  • 大小: 6.3 KB
1
4
分享到:
评论

相关推荐

    Java调用Groovy,实时动态加载数据库groovy脚本

    Groovy代码可以被Java编译器理解,并且在运行时,GroovyShell或GroovyClassLoader等工具能够即时编译和执行Groovy脚本,这为动态加载和执行提供了便利。 当我们需要在Java程序中调用Groovy脚本时,可以使用以下步骤...

    groovy和Java相互调用1

    Java编译器会自动处理Groovy类的编译,并将其转换为Java字节码,以便Java代码可以正常运行。在这个例子中,创建了一个`GroovyDemo`对象并调用了它的`sayHello`方法。 2. **方法2:反射动态调用** - 使用Java的反射...

    java动态代码执行

    Java动态代码执行是一种在运行时编译和执行代码的技术,它可以极大地提高程序的灵活性和可扩展性。在Java中,Groovy是一个强大的脚本语言,它与Java语法兼容,并且可以无缝集成到Java应用程序中,使得动态代码执行变...

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

    首先,我们来看动态编译Groovy脚本。Groovy提供了GroovyShell和GroovyClassLoader两个工具,它们能够帮助我们即时编译和执行Groovy代码。GroovyShell允许在运行时执行Groovy脚本,而GroovyClassLoader则可以动态加载...

    JVM 动态执行Groovy脚本的方法

    需要注意的是,JShell 适合快速测试简单的代码片段,而调试模式下的执行适合在运行时动态调试代码。javax.script包提供的接口执行方式则更加通用,适用于各种脚本语言的执行需求。在实施动态执行脚本时,还要确保...

    groovy动态方法

    总的来说,`groovy动态方法`和`MetaClass`、`ExpandoMetaClass`以及MOP是Groovy强大特性的体现,它们为开发者提供了在运行时改变类行为的能力,使得Groovy代码更加灵活多变。掌握这些概念和技巧,将有助于你编写出更...

    java与groovy互相调用1

    MOP允许Groovy在运行时动态地修改对象的行为,而字节码增强则使得Groovy对象在JVM中表现得如同Java对象一样。 总结来说,Java和Groovy的互操作性提供了以下几点优势: 1. **代码简洁性**:Groovy的语法通常比Java...

    groovy调用java-se类库学习案例 Java学习资料

    在Groovy中调用Java方法时,Groovy提供了两种主要的方式:静态导入和动态方法调用。静态导入允许你省略类名,直接调用静态方法,如`import static java.lang.Math.*`后,你可以直接使用`sqrt(25)`。动态方法调用则...

    Groovy 介绍 官网资源

    - **编译Groovy**:涵盖了使用不同工具和技术(如Maven、Gradle等)编译Groovy代码的方法。 - **设计模式**:通过一系列文章探讨了如何使用Groovy实现各种设计模式,包括但不限于: - 抽象工厂模式(Abstract ...

    Groovy DSL 动态规则(rule)执行引擎

    首先,Groovy是一种动态类型的、面向对象的编程语言,它是Java平台上的一个方言,具有简洁的语法和丰富的元编程能力。Groovy DSL是利用Groovy的灵活性和简洁性,为特定领域创建的一种定制化语言,使得业务规则的编写...

    groovy program

    书中展示了Groovy的理论知识和实践应用,包括但不限于基础日常任务、编译时元编程和AST变换、方法拦截与合成以及创建DSLs(领域特定语言)。此外,书籍的独特之处在于,它为不同级别的读者提供了易于理解的实例,...

    groovy基础语法.pdf

    Groovy代码可以轻松地调用Java API,并可以将Groovy类编译成Java字节码,这意味着Groovy程序可以运行在任何标准的Java环境中。 在给定文件的【部分内容】中,我们可以看到Groovy的诸多特性体现: - `println`用于...

    AndroidStudio-NDK开发 编译c代码提供so库和jar包 另外一个app调用,实例源码

    NDK是一组工具,允许开发者使用C和C++编写部分应用代码,这些代码可以被编译为本地机器码,运行在Android设备的Dalvik或ART虚拟机上。这通常用于实现性能敏感或依赖于底层硬件的功能,例如图形处理、音频处理、加密...

    spring-beans-groovy源码

    在实际项目中,`spring-beans-groovy`还支持在运行时动态修改Bean定义,这在处理复杂或不确定的配置时非常有用。例如,我们可以在启动时根据环境变量或配置文件动态生成Groovy脚本,然后通过`...

    jvm中可用的动态脚本引擎和动态代码执行

    动态脚本引擎允许开发者在运行时编写和执行脚本,这大大增强了Java应用程序的灵活性和可扩展性。这篇博客文章“jvm中可用的动态脚本引擎和动态代码执行”探讨了这一主题,并通过一个实际的例子来阐述其应用。 首先...

    提高Java程序动态性的一个新途径.pdf

    为了突破这种限制,JDK1.7版本开始引入了新的动态调用指令,也就是invokedynamic指令,它原本是为了支持Groovy、JRuby等动态类型语言在Java虚拟机上的运行而设计的。这种动态调用指令通过使用方法句柄(MethodHandle)...

    Groovy1.8 beta 官方文档-1269页

    Groovy是一种动态、灵活的编程语言,它设计用于Java虚拟机(JVM)上运行,并且与Java语言无缝集成。Groovy1.8 beta版本是该语言的一个重要里程碑,引入了许多新特性和改进,旨在提高开发效率和代码的可读性。这份...

    Groovy User Guide

    - **定义:** Groovy 是一种灵活的、动态的语言,它运行在 Java 虚拟机(JVM)上。 - **特点:** Groovy 支持面向对象编程、函数式编程以及元编程。 - **应用场景:** Groovy 可用于开发 Web 应用、构建脚本、...

    java+ireport报表开发实例

    报表设计中可以包含动态参数,这些参数在运行时由用户输入或程序传递。表达式则用于计算或处理数据,例如过滤、转换等。JasperReport支持使用Java EL(Expression Language)和Groovy表达式。 **7. 实例应用** 一个...

Global site tag (gtag.js) - Google Analytics