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);
}