使用Apache Commons CLI库时如何获取参数

时间:2011-01-14 09:12:20

标签: java apache-commons apache-commons-cli

我正在使用Apache Commons CLI来处理Java中的命令行参数。

我已宣布ab选项,并且我可以使用CommandLine.getOptionValue()访问该值。

Usage: myapp [OPTION] [DIRECTORY]

Options:
-a        Option A
-b        Option B

如何声明和访问DIRECTORY变量?

2 个答案:

答案 0 :(得分:31)

使用以下方法:

CommandLine.getArgList()

返回处理选项后剩余的内容。

答案 1 :(得分:7)

最好使用另一个选项(-d)来识别对用户更直观的目录。

或者以下代码演示了获取剩余参数列表

public static void main(final String[] args) {
    final CommandLineParser parser = new BasicParser();
    final Options options = new Options();
    options.addOption("a", "opta", true, "Option A");
    options.addOption("b", "optb", true, "Option B");

    final CommandLine commandLine = parser.parse(options, args);

    final String optionA = getOption('a', commandLine);
    final String optionB = getOption('b', commandLine);

    final String[] remainingArguments = commandLine.getArgs();

    System.out.println(String.format("OptionA: %s, OptionB: %s", optionA, optionB));
    System.out.println("Remaining arguments: " + Arrays.toString(remainingArguments));
}

public static String getOption(final char option, final CommandLine commandLine) {

    if (commandLine.hasOption(option)) {
        return commandLine.getOptionValue(option);
    }

    return StringUtils.EMPTY;
}