JAVA与groovy脚本的结合使用

java执行groovy shell脚本

<dependency>

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

<artifactId>groovy-all</artifactId>

<version>2.4.0-beta-1</version>

</dependency>

添加groovy jar包支持

====================================================

package groovy;

import groovy.lang.Binding;

import groovy.lang.GroovyShell;

public class Java2GroovyShell {

public static void main(String[] args) {

// TODO Auto-generated method stub

Binding binding = new Binding();

binding.setVariable("var", 5);

GroovyShell gs = new GroovyShell(binding);

Object value = gs.evaluate("println 'Hello Groovy !';abc=123;return var*10");//执行groovyshell脚本

System.out.println(value.equals(50));

System.out.println(binding.getVariable("abc").equals(123));

}

}

====================================================直接运行groovy的脚本

++++++++++++++++++++++++++++++++++++++++++++++++++++JAVA中动态运行groovy脚本

通过JAVA来加载如一个groovy脚本文件,然后调用该脚本中的方法

package groovy;

import groovy.lang.GroovyClassLoader;

import groovy.lang.GroovyObject;

import java.io.File;

public class Java2GroovyDynamic {

public static void main(String[] args) throws Exception {

// TODO Auto-generated method stub

ClassLoader parent = ClassLoader.getSystemClassLoader();

GroovyClassLoader loader = new GroovyClassLoader(parent);

Class groovyClass = loader.parseClass(new File("C:\\normandy_workspace\\groovy\\src\\groovy\\GroovyDemo.groovy"));

GroovyObject groovyObject = (GroovyObject)groovyClass.newInstance();

Object[] param = {123,321};

int res = (int) groovyObject.invokeMethod("add", param);

System.out.println("res="+res);

}

}

groovy脚本

package groovy

class GroovyDemo {

static int add(int x,int y) {

return x+y;

}

static main(args) {

int z = add(123,321);

println("x+y="+z);

}

}

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Groovy脚本引擎

通过设定CLASSPATH来初始化groovy脚本引擎,可以运行该path下的任何groovy脚本文件了

package groovy;

import groovy.lang.Binding;

import groovy.util.GroovyScriptEngine;

public class Java2GroovyEngine {

public static void main(String[] args) throws Exception {

// TODO Auto-generated method stub

String path = "C:\\normandy_workspace\\groovy\\src\\groovy\\";

GroovyScriptEngine gse = new GroovyScriptEngine(path);

Binding binding = new Binding();

binding.setVariable("input", "Groovy");

gse.run("Test.groovy", binding);

System.out.println(binding.getVariable("output"));

}

}

groovy脚本

package groovy;

output = "Hello ${input}";

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值