How to fetch parameters when using the Apache Commons CLI library

怎甘沉沦 提交于 2019-11-26 16:40:52

问题


I'm using the Apache Commons CLI to handle command line arguments in Java.

I've declared the a and b options and I'm able to access the value using CommandLine.getOptionValue().

Usage: myapp [OPTION] [DIRECTORY]

Options:
-a        Option A
-b        Option B

How do I declare and access the DIRECTORY variable?


回答1:


Use the following method:

CommandLine.getArgList()

which returns whatever's left after options have been processed.




回答2:


It may be better to use another Option (-d) to identify directory which is more intuitive to the user.

Or the following code demonstrates getting the remaining argument list

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


来源:https://stackoverflow.com/questions/4689497/how-to-fetch-parameters-when-using-the-apache-commons-cli-library

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!