Overview

Jakarta Commons CLI という コマンドラインオプション解析のためのライブラリが存在します. この CLI はコマンドラインオプションを解析するために, 定義,解析,利用の 3 つの 段階を経て利用します.

getopt Java port に比べて,自由度が高く,また,オブジェクト指向的なクラス構成で すので, 便利なライブラリです.

しかし,CLI を利用するのに,個人的にどうしてもイタダケない部分があり ます. それは 3 つの段階の 1 つ目,定義の部分です. 例えば ls の block-size オプションを指定するには以下のコードを書かなければなりませ ん.

options.addOption( OptionBuilder.withLongOpt( "block-size" )
                                .withDescription( "use SIZE-byte blocks" )
                                .withValueSeparator( '=' )
                                .hasArg()
                                .create());

こんなコードが延々と続くとイヤになってしまいます.そこで,この XmlCli はオプションの定義を xml で書くことで,上記のようなコードをプログラム 中に現れないようにします.