java groovy整合记录

java groovy整合记录步骤如下:

1、eclipse安装groovy的插件。

2、创建java project。

3、把groovy-all-2.1.9.jar,加入classpath。

4、编写hello.groovy脚本文件,并在java代码中调用脚本文件

相关项目架构如下:

Hello.java如下:

package com.yiming.java;
import java.io.File;
import groovy.lang.GroovyClassLoader;
import groovy.lang.GroovyObject;
public class Hello {
	public  static void main(String[] args) throws Exception{
		String path="src/com/yiming/groovy/Hello.groovy";
		execGroovy(path,"main",new Object[]{"xx","xxxxx"});
	}
	/**
	 * 有perm 内存溢出的风险
	 * @throws Exception
	 */
	public static Object execGroovy(String path,String methodName,Object[] args) throws Exception{
		ClassLoader parent = ClassLoader.getSystemClassLoader();
        GroovyClassLoader loader = new GroovyClassLoader(parent);
        Class<?> gclass = loader.parseClass(new File(path));
        GroovyObject groovyObject = (GroovyObject) gclass.newInstance();
        Object obj = groovyObject.invokeMethod(methodName, args);
        System.out.println("返回值:"+obj);
		return obj;
	}
	
}

Hello.groovy如下:

package com.yiming.groovy

import com.yiming.java.Person;
class Hello {
    public  static void main(String[] args){
        println args
        println 'hello,groovy!'
        def p=new Person("张三","男");
        println  p.name;
    }
}

Person.java如下:

package com.yiming.java;

public class Person {
	private String name;
	private String sex;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public Person(String name, String sex) {
		this.name = name;
		this.sex = sex;
	}
	@Override
	public String toString() {
		return "Person [name=" + name + ", sex=" + sex + "]";
	}
	
}
项目下载地址如下: http://download.csdn.net/detail/yx511500623/6912785

不需要配置groovy_home、添加到path;只需要把groovy的jar包添加到classpath中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值