Tag: apache commons cli

如何使用apache commons cli指定多个选项?

我想要的东西: java programName -jobs1 -C 10 -W 20 java programName -job2 java programName -job3 内容: Option o1 = new Option(“job2”, “some desc”); Option o2 = new Option(“job3” , “(some desc”) Option o3 = OptionBuilder.hasArgs(2).withArgName( “W” ).withArgName(“C”).withDescription( “Some desc” ).create(“job1”) Option o4 = new Option(“help”); Options os = new Options().addOption(o1).addOption(o2).addOption(o3).addOption(o4). HelpFormatter formatter = new HelpFormatter(); formatter.printHelp( […]

从main()方法中获取可执行jar的名称

我创建了一个可执行jar并使用commons-cli为用户提供了在启动客户端时指定命令行参数的能力。 一切正常。 但是,当我打印jar的用法语句时,我想显示以下内容: usage: java -jar myprog.jar –help Display the help message –debug Enable debugging …. 使用commons-cli可以轻松打印所有选项。 然而,“使用”线是头部刮擦。 我似乎无法找到从args []获取传递给应用程序的“myprog.jar”名称的方法。 这有什么简单的方法吗? 我可以使用一个非常复杂的方法从我的类的类加载器返回跟踪,并确定它是否包含在jar中,但这似乎是一个相当难看的答案,应该是一个非常简单的问题。 private String getPath(Class cls) { String cn = cls.getName(); String rn = cn.replace(‘.’, ‘/’) + “.class”; String path = getClass().getClassLoader().getResource(rn).getPath(); int ix = path.indexOf(“!”); if(ix >= 0) { return path.substring(0, ix); } else […]

Apache Commons CLI选项解析器可以忽略未知的命令行选项吗?

我正在编写一个Java应用程序,它接受使用Apache Commons CLI和GnuParser处理的命令行参数。 由于没有兴趣进入的原因,我希望它默默地忽略未知的命令行选项而不是抛出ParseException,但我没有看到这样做的方法。 我看到GnuParser.parse()上有一个stopAtNonOption布尔选项,但我想要的更像ignoreAtNonOption,它会在遇到未知令牌后继续处理选项。 我可以实现我自己的解析器来完成这个但是我很惊讶没有内置这个function所以我想我会在走这条路之前检查一下。 我正在谈论的示例代码: try { CommandLine commandLine = parser.parse(options, args); // stopAtNonOption set to true (below) is also not what I want // CommandLine commandLine = parser.parse(options, args, true); } catch (ParseException e) { LOG.error(“error parsing arguments”, e); throw new RuntimeException(e); }

Commons CLI需要组

我正在用Java编写命令行应用程序,我选择了Apache Commons CLI来解析输入参数。 假设我有两个必需的选项 (即-input和-output)。 我创建新的Option对象并设置必需的标志。 现在一切都很好。 但我有第三个,不是必需的选项 ,即。 -救命。 使用我提到的设置,当用户想要显示帮助时(使用-help选项),它表示需要“-input和-output”。 有没有办法实现这个(通过Commons CLI API,不简单,如果(!hasOption)抛出新的XXXException())。

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

我正在使用Apache Commons CLI来处理Java中的命令行参数。 我已经声明了a和b选项,并且我可以使用CommandLine.getOptionValue()来访问该值。 Usage: myapp [OPTION] [DIRECTORY] Options: -a Option A -b Option B 如何声明和访问DIRECTORY变量?