ページ更新: 2004-01-15 (木) (5545日前)

コマンドライン引数を処理するパッケージ Jakarta Commons CLI。

gnu.getoptもいいのだが‥‥。

[編集]

情報源 #

  • CLI+
    • 設定をXMLで
[編集]

サンプルコード #

// Construct Configuration
Options options = new Options();
options.addOption("h", "help", false, "print this message");
options.addOption("v", "verbose", false, "verbose");

// Parse Option
CommandLineParser parser = new PosixParser();
CommandLine line = null;
try {
    line = parser.parse(options, args);
} catch (ParseException exp) {
    System.err.println("Parsing failed.  Reason: " + exp.getMessage());
}

// Check Option
boolean showHelp = false;
int verboseLevel = 0;

for (Iterator i = line.iterator(); i.hasNext();) {
    Option o = (Option)i.next();
    String longOpt = o.getLongOpt();
    if (longOpt.equals("help")) {
        showHelp = true;
    } else if (longOpt.equals("verbose")) {
        verboseLevel++;
    }
}

//
for (int i = 0; i < args.length; i++) {
    System.out.println("arg[" + i + "]=" + args[i]);
}
System.out.println("showHelp = " + showHelp);
System.out.println("verboseLevel = " + verboseLevel);

// Check other args
String[] otherArgs = line.getArgs();
for (int i = 0; i < otherArgs.length; i++) {
    System.out.println("otherArgs[" + i + "]=" + otherArgs[i]);
}

// Usage/Help
if (showHelp) {
    HelpFormatter formatter = new HelpFormatter();
    formatter.printHelp("example", options);
}

String[] args = {"--help", "--verbose", "-vv", "file1", }; を渡したときの実行例:

arg[0]=--help
arg[1]=--verbose
arg[2]=-vv
arg[3]=file1
showHelp = true
verboseLevel = 3
otherArgs[0]=file1
usage: example
 -h,--help      print this message
 -v,--verbose   verbose