CLIを使用したJavaコマンドラインパラメータの解析


最近Javaでデータ抽出のサンプルを書くつもりですが、前回Javaでプログラムを書くのからN(N>4)年が経ちました.を読んだことがなく、今書かれているコードはJava風ではないと深く感じています.....コマンドラインで比較的複雑なパラメータ(argument)を使う必要があるので、CLIライブラリを利用してこのブロックを解決したいと思っています.CLIライブラリのJarファイルはApache Commonsからダウンロードでき、現在成熟しているのはCLI 1.2バージョンです.CLIを使用するには、Options Classのインスタンスオブジェクトを作成する必要があります.
Options Maclean=new Options();
このOptionsオブジェクトによって、コマンドラインプログラムが許容できるパラメータ(argument)を定義することができます.パラメータを追加する方法の1つは、addOptions()メソッドを使用することです.
JDUL.addOption("END" ,true,  "select the Big or Little Endian");
コマンドラインプログラムに許容パラメータを定義した後、コマンドライン解析器CommandLineParserが入力したパラメータをさらに解析する必要があります.
BasicParser parser = new BasicParser();
CommandLine cl = parser.parse(JDUL, args);
次は、完全なコマンドラインパラメータ解析サンプルコードです.
package par;

import org.apache.commons.cli.BasicParser;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.ParseException;

public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
      try {
            Options JDUL = new Options();

            JDUL.addOption("h"   ,false, "Print help for JDUL");
            JDUL.addOption("END" ,true,  "select the Big or Little Endian");
            JDUL.addOption("SSM" ,true,  "select MSSM or ASSM");

            BasicParser parser = new BasicParser();
            CommandLine cl = parser.parse(JDUL, args);

            if( cl.hasOption('h') ) {
                HelpFormatter f = new HelpFormatter();
               f.printHelp("OptionsTip", JDUL);
            }
            else{
                System.out.println(cl.getOptionValue("END"));
                System.out.println(cl.getOptionValue("SSM"));
            }
        }
        catch(ParseException e) {
            e.printStackTrace();
        }

    }
}
このコマンドライン解析プログラムを具体的に使用します.
C:\Users\maclean>java -jar "C:\Users\maclean\Documents\NetBeansProjects\par\dist\par.jar" -h
usage: OptionsTip
 -END <arg>