Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从其他groovy脚本调用groovy脚本_Groovy - Fatal编程技术网

从其他groovy脚本调用groovy脚本

从其他groovy脚本调用groovy脚本,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 } } 将以下内容

我想从另一个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
  }
}

将以下内容放在脚本顶部将加载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)还记得Java类路径的概念吗?这适用于Groovy(因为Groovy是Java!):

CLASSPATH变量是告诉应用程序(包括JDK工具)在何处查找用户类的一种方法

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

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

上面的命令告诉运行时在c:\groovy\yourscripts文件夹中查找,因为那里有我们的类,我们需要它们来成功运行B.groovy脚本

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


这两种方法都能解决您的需要。现在下一个问题是什么时候使用它们?

将它们放在同一个文件夹中。Groovy识别同一目录中的文件。然后您可以执行一个简单的
newa()
,或者,当你使用静态方法时,
A.main args
你似乎只接受了一个问题的答案……我不明白你在说什么,蒂姆先生……我不明白你的意思?@Tim:ohhh……我是新来这个论坛的……谢谢你的建议。。