Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在使用Apache Commons CLI库时获取参数_Java_Apache Commons_Apache Commons Cli - Fatal编程技术网

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

Java 如何在使用Apache Commons CLI库时获取参数,java,apache-commons,apache-commons-cli,Java,Apache Commons,Apache Commons Cli,我正在使用ApacheCommonsCLI处理Java中的命令行参数 我已经声明了a和b选项,并且可以使用CommandLine.getOptionValue()访问该值 如何声明和访问目录变量?使用以下方法: CommandLine.getArgList() 它返回处理选项后剩下的任何内容。最好使用另一个选项(-d)来标识用户更直观的目录 或者下面的代码演示如何获取剩余的参数列表 public static void main(final String[] args) { final

我正在使用ApacheCommonsCLI处理Java中的命令行参数

我已经声明了
a
b
选项,并且可以使用
CommandLine.getOptionValue()
访问该值


如何声明和访问目录变量?

使用以下方法:

CommandLine.getArgList()

它返回处理选项后剩下的任何内容。

最好使用另一个选项(-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;
}

如果所有选项的参数数量都是无限的,那该怎么办呢?除此之外,我还要补充一点,HelpFormatter将用于打印[DIRECTORY]参数:
HelpFormatter formatter=new HelpFormatter()
formatter.printHelp(“myapp[选项][目录]”,选项)
您是如何制作
帮助格式化程序的
打印
[选项][目录]
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;
}