现在的位置: 首页 > 综合 > 正文

java groovy整合记录

2014年09月05日 ⁄ 综合 ⁄ 共 1574字 ⁄ 字号 评论关闭

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中。

抱歉!评论已关闭.