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 で書くことで,上記のようなコードをプログラム 中に現れないようにします.