加载带有依赖项的groovy类

时间:2014-01-28 14:44:59

标签: java groovy

假设我想使用GroovyClassLoader加载一个使用其他几个类的类

test1.groovy  
|  
|_test2.groovy
|            |
|            test3.groovy
|
test4.groovy

除了按test4->test3->test2->test1的顺序加载它们。我可以加载test1并加载它的所有依赖项吗?

1 个答案:

答案 0 :(得分:1)

鉴于File1.groovy喜欢:

import File2

new File2().sayHi( 'tim' )

File2.groovy喜欢:

class File2 {
    def sayHi( name ) {
        println "Hi $name"
    }
}

Test.java喜欢:

import groovy.lang.GroovyClassLoader ;
import groovy.lang.GroovyObject ;

public class Test {
    public static void main( String[] args ) throws Exception {
        GroovyClassLoader loader = new GroovyClassLoader() ;
        GroovyObject o = (GroovyObject)loader.loadClass( "File1" ).newInstance() ;
        o.invokeMethod( "run", new Object[] {} ) ;
        loader.close() ;
    }
}

我可以用:

编译它
javac -cp groovy-all-2.2.1.jar:. Test.java 

当我这样做时:

java -cp groovy-all-2.2.1.jar:. Test

打印:

Hi tim

我的例子与你的例子有什么不同,你能否在你的问题中添加差异?