コマンドライン引数
Groovy起動時に指定したコマンドライン引数は“args”という名前のリスト型変数に入っている.例えば,以下のように起動すると確認できる.“$”はコマンドプロンプトである.
$ groovy -e "args.each{println it}" aaa bbb
aaa
bbb
  
        “args”以外の名前にするとエラーになる.
$ groovy -e "hoge.each{println it}" aaa bbb
Caught: java.lang.NullPointerException: Cannot invoke method: each on null object
java.lang.NullPointerException: Cannot invoke method: each on null object
    at org.codehaus.groovy.runtime.Invoker.invokeMethod(Invoker.java:125)
    at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:106)
    at main.run(main:1)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
<<以下省略>>
  
        クラスを作成する場合は,以下のようにmainメソッドの引数となる.
class Foo{
  static void main(args){
    args.each{println it}
  }
}
  
        $ groovy Foo.groovy aaa bbb aaa bbb
mainメソッドの引数であれば名前は何でも良い.例えば以下の通り.
class Baz{
  static void main(hoge){
    hoge.each{println it}
  }
}
  
        $ groovy Baz.groovy aaa bbb aaa bbb
なお,動作環境は以下の通りである.
- Groovy 1.0 beta7
- JDK 1.4.2_04
- Windows XP Professional Service Pack1