假设我想使用GroovyClassLoader
加载一个使用其他几个类的类
test1.groovy
|
|_test2.groovy
| |
| test3.groovy
|
test4.groovy
除了按test4->test3->test2->test1
的顺序加载它们。我可以加载test1
并加载它的所有依赖项吗?
答案 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
我的例子与你的例子有什么不同,你能否在你的问题中添加差异?