2013-05-17 138 views
1

调用Groovy脚本我想打电话从其他Groovy脚本Groovy脚本......任何人都可以帮我在这尽快..其他Groovy脚本

例如:

A类有一些代码,它应该的B

class A{ 
    static main(args){ 

    println "Hello.. calling A Class" 
    } 
} 

叫我想创建一个新的类象B.groovy

class B{ 
    static main(args){ 

    // I need code for this to call A.groovy 
    } 
} 
+0

将它们放在同一个文件夹中。 Groovy标识同一目录中的文件。然后,你可以做一个简单的'新的A()',或者,因为你正在使用静态方法,'A.main args' – Will

+3

你似乎只接受过一个你的问题的答案......我没有启发 –

+0

你在跟蒂姆先生说什么......我不明白你的意思? –

回答

2

认沽在脚本的顶部添加以下内容将加载groovy文件的内容。

evaluate(new File("/path/to/script/MyScript.groovy")) 

如果您需要经常这样做,您也可以将其添加到groovy类路径中。希望这可以帮助。

另外,如果你需要从你的脚本中运行其他脚本,你可以(对我有什么啤酒?)党执行下列操作...

def script = new GroovyShell(); 
def args = ['Hello World']; 
script.run(new File("/path/to/script/MyScript.groovy"), args as String[]); 
0

太晚了,但这里I'll告诉你2更多风味:

1)还记得Java的CLASSPATH的概念吗?这aplies Groovy的(因为Groovy是Java的!):

“CLASSPATH变量就是告诉应用程序,包括JDK工具,到哪里寻找用户类的一种方式。”

为了运行脚本B.groovy你必须告知A.groovy(A类)的位置:

常规-cp C:\常规\ yourscripts C:\常规\脚本\ B.groovy

命令上面告诉运行时查看c:\ groovy \ yourscripts文件夹,因为我们有我们的类的地方nd我们需要他们成功运行B.groovy脚本。

2)使用GroovyClassLoader在运行时加载脚本和使用的代码!

两种方式都可以解决您的需求。现在下一个问题是什么时候使用每个?