jakarta common CLI

コマンドラインからの実行時のコマンドパラメータの解析をしてくれるライブラリ。
誰もが1度は書くコードですが、ちゃんと書こうとすると結構面倒
で、Argvの値をそのまま使ってしまっていますが、
ちゃんと、解析したほうがいいんだろうなぁ。。。といつも、おもっていました。
このライブラリを使えば、簡単にかっこよくコマンドパラメータの解析ができます。

使用例) xls2srcからの抜粋


public static void main(String[] args) throws IOException,Exception
{
String xlsFileName="data/workbook.xls";
String templateFolderName="template";

Options options = new Options();
options.addOption(OptionBuilder
.withArgName("xlsFileName")
.hasArg()
.withDescription( "設計Xlsファイル名(デフォルト:data/workbook.xls)" )
.create( "f") );

options.addOption(OptionBuilder
.withArgName("templateFolderName")
.hasArg()
.withDescription( "テンプレートフォルダ名(デフォルト:template)" )
.create( "t") );

options.addOption("h", false, "ヘルプ表示");


CommandLineParser parser = new BasicParser();
CommandLine cmd;
try {
cmd = parser.parse(options, args);
} catch (ParseException pe) {
displayHelp(options );


return;
}

if (cmd.hasOption("h")) {
displayHelp(options );
return;
}

if (cmd.hasOption("f")) {
xlsFileName = cmd.getOptionValue('f');
}

if (cmd.hasOption("t")) {
templateFolderName = cmd.getOptionValue('t');
}


ArrayList modelCollection = getModelCollection(xlsFileName);
excute( templateFolderName ,modelCollection);

}
private static void displayHelp(Options options ){
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp( "xls2src", options, true);
}