从其他groovy脚本调用groovy脚本

时间:2013-05-17 09:58:45

标签: 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
  }
}

2 个答案:

答案 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[]);

答案 1 :(得分:0)

派对太晚了(对我来说是啤酒吗?)但是在这里我会再向你展示2种口味:

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

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

要运行脚本B.groovy,您必须告知A.groovy(A类)的位置:

groovy -cp c:\ groovy \ yourscripts c:\ groovy \ scripts \ B.groovy

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

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

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