将命令行参数传递给Groovy脚本

将命令行参数传递给Groovy脚本,groovy,Groovy,我有一个简单的Groovy脚本,如下所示: class Main { static void main(String... args) { args.each { println ${it} } } } 我不知道如何将命令行参数传递给它。我在Windows上,以以下方式运行脚本: Groovy myscript.Groovy“arg1”arg2 它会导致错误: 捕获:groovy.lang.MissingMethodExc

我有一个简单的Groovy脚本,如下所示:

class Main {
    static void main(String... args) {
        args.each {
            println ${it}
        }
    }
}
我不知道如何将命令行参数传递给它。我在Windows上,以以下方式运行脚本:

Groovy myscript.Groovy“arg1”arg2

它会导致错误:

捕获:groovy.lang.MissingMethodException:没有方法的签名:Main$\u Main\u closure1。$()适用于参数类型:(Main$\u Main\u closure1$\u closure2)值:[Main$\u Main\u closure1$_closure2@68b32e3e] 可能的解决方案:is(java.lang.Object)、is(java.lang.Object)、any()、any()、any(groovy.lang.Closure)、use([Ljava.lang.Object;) groovy.lang.MissingMethodException:没有方法的签名:Main$\u Main\u closure1。$()适用于参数类型:(Main$\u Main\u closure1$\u closure2)值:[Main$\u Main\u closure1$_closure2@68b32e3e] 可能的解决方案:is(java.lang.Object)、is(java.lang.Object)、any()、any()、any(groovy.lang.Closure)、use([Ljava.lang.Object;) 在Main$\u Main\u closure1.doCall(hash\u text.groovy:10) Main.Main(hash_text.groovy:9)


您只是有一个语法错误。而不是

println ${it}
使用


您只是有一个语法错误。而不是

println ${it}
使用


不知道是否有明确的理由这样做,但groovy脚本中不需要显式类。此外,还有一个隐式的
args
集合自动注入到脚本中

换句话说,将以下内容粘贴到
test.groovy中

println "ARGS:  $args"
println "CLASS: ${args.class}"
给出以下执行结果:

~> groovy test.groovy foo bar
ARGS:  [foo, bar]
CLASS: class [Ljava.lang.String;

其中,类printout意味着隐式
args
变量是字符串数组类型。

不知道这样做是否有明确的原因,但groovy脚本中不需要显式类。此外,还有一个隐式
args
集合自动注入到脚本中

换句话说,将以下内容粘贴到
test.groovy中

println "ARGS:  $args"
println "CLASS: ${args.class}"
给出以下执行结果:

~> groovy test.groovy foo bar
ARGS:  [foo, bar]
CLASS: class [Ljava.lang.String;
其中,类printout表示隐式
args
变量为字符串数组类型