gpt4 book ai didi

java - Commons CLI 空 命令行中的选项

转载 作者:行者123 更新时间:2023-11-30 07:48:39 24 4
gpt4 key购买 nike

我不明白如何在 Commons CLI 中将 Options 应用到 DefaultParser

当创建CommandLine对象时,分配的Options始终为空。

以下代码块是我解释 Commons CLI 文档的方式:

public static void main(String[] args)  {

Options options = new Options();

options.addOption("c", false, "why are you hidding from me");

CommandLineParser parser = new DefaultParser();

System.out.println(args[0]); // this prints -c

try {

CommandLine line = parser.parse(options, args);

System.out.println(line.getArgs()[0]); // prints -c

Option[] o = line.getOptions(); // this is empty for some reason

System.out.println(o.length); // prints 0

if (line.hasOption("c")) { // false

System.out.println(" flag c found");
}
}

catch(ParseException e ) {
e.printStackTrace();
}

为什么line.getOptions()是空的,如何正确应用选项?

最佳答案

我只是尝试重现您的问题,但对我来说一切正常。我创建了一个简单的 Maven 项目,仅包含 commons-cli:commons-cli:1.3.1 依赖项和 Test 主类,其方法与您在问题中提供的方法完全相同.

当我从 Windows 命令行编译并运行 main 方法时,例如与:

java -cp .;[path_to_commons_cli_jar]/commons-cli-1.3.1.jar Test -c

然后它给了我预期的输出:

  • args 由单个 "-c" 值组成;
  • line.getArgs() 返回一个空数组;
  • line.getOptions() 返回由预期 Option 对象组成的单个条目数组。

也许当您在 Eclipse 中启动程序时,您使用的命令行中还有一些剩余的空格没有被删除?否则,您的代码应该可以正常工作...

关于java - Commons CLI 空 命令行中的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33574336/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com