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