コマンドライン引数
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