问题标签 [apache-commons-cli]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
114 浏览

java - CommonsCLI,相互包容的论点?

有没有办法使用 CommonsCLI 创建一对组,当且仅当使用来自另一个组的项目时才能使用其中一个组?(即两者或都不是)

例如,给定选项选择...

这给出了......的有效模式

和...的无效模式

0 投票
2 回答
357 浏览

java - 有没有办法自动从 Apache commons-cli 选项值中去除前导空格?

考虑以下示例:

结果将是

真的没有办法自动删除前导空格吗?我本来希望这是一个常见的用例。

0 投票
1 回答
1157 浏览

java - Java jar 文件命令行中的选项

我试图四处搜索,但没有看到合适的文档显示如何做,所以我发布了这个。

我想在我的 jar 文件中调用一个函数来处理命令行中给出的字符串,例如:

使用的代码如下:

但是,inputString 始终为空。如何读取所需的字符串?

有关更多信息,它使用 StringReader 抛出 NullPointerException。

谢谢。

0 投票
2 回答
5695 浏览

java - Commons CLI 中没有选项名称的必需参数

我正在尝试将 Java 中的命令行参数解析为以下用法:

使用 Apache Commons CLI 库,我知道我可以选择使用Option's 来解析-h-v命令,然后使用CommandLine.getArgs()来获取剩余的参数FILE,然后根据需要对其进行解析,但我实际上想将其指定为OptionCLI 中的一个。

目前,我执行以下操作:

但是,当我调用HelpFormatter.printHelp(String, Options)我的额外参数时,不会包含在自动生成的帮助文本中。

我所追求的是这样的:

我有一个参数,但没有附加相应的选项标识符,因此可以将它传递给HelpFormatter. 有任何想法吗?

0 投票
1 回答
867 浏览

java - 如何使用 Apache commons CLI 解析文件模式

我正在尝试使用 apache commons CLI 解析我的命令行参数。这里的例子可能有点笨拙,但在我正在创建的程序的上下文中它是有意义的。我正在尝试读取文件模式过滤器,类似于 grep 用于选择要处理的文件。

我的论点如下所示:

我编写了一个测试程序来查看解析器看到的内容;

这打印出来:

如果我将论点更改为:

我得到输出:

我假设我必须做一些事情来告诉 apache commons 什么 * 不是特殊字符?我似乎无法在网上找到有关此的任何信息。

我在 Windows (7) 上遇到了这个问题。我相当确定是 *.* 导致了问题,因为当我切换到使用不使用 * 的模式时,会出现预期的模式。

0 投票
1 回答
126 浏览

java - 使用 Commons CLI 传递多个类似的选项

我正在使用 commons Cli,并且想知道是否有一种方法可以创建许多相关选项而无需在构造函数中定义它们。例如,要使用 --if1、--if2、--if3 输入多个文件,例如不定义:

我知道我可以通过使用带有逗号分隔值的文件的单个 if 标志来解决它。但是,我正在制定一个需要上述格式的规范,因此在采用该路线之前用尽所有选项会很棒。

任何意见将不胜感激,

谢谢,山姆

0 投票
1 回答
968 浏览

java - 在 Java 中结合 commons-cli 和密码提示

我目前正在使用import org.apache.commons.cli

假设我有一个命令行解析器,例如:

和我的主要功能:

出于显而易见的原因,我想从命令行省略密码,因为它在历史记录和进程列表中都可见。但是我的主程序需要一个命令行类型的对象。有什么方法可以解析具有类似行为的密码,console.readPassword()甚至调用此函数并将其添加到 CommandLine 对象?

我已经尝试搜索 commons-cli 和密码解析的组合,但没有成功。

0 投票
2 回答
893 浏览

java - Java Commons CLI - 在使用帮助参数时覆盖 required() 参数

我正在通过以下方式为解析器添加选项:

现在,我想允许用户只使用帮助命令,例如。

使用上述解决方案,这是不可能的 - 我收到有关缺少所需参数的信息

有没有办法标记帮助参数,以便它可以覆盖所需的参数,并允许单独使用它?我可以手动执行此操作,但首先我想知道 CLI lib 中是否有这样的选项。

0 投票
1 回答
906 浏览

scala - 使用 spark-submit 时来自依赖项的 NoSuchMethodError

我正在尝试Apache Spark 2.2.1使用Scala 2.11. 我在我的 JAR 中包含了一些额外的依赖项,即Apache Commons CLI,并将它们全部打包到一个胖 JAR 中。但是,NoSuchMethodError当我提交我的 Spark 应用程序时,我得到了一个。我很确定这不是由于 Scala 版本的不一致,而是由于依赖关系有些奇怪。

命令很简单spark-submit myjar.jar [arguments]

这是错误:

线程“主”java.lang.NoSuchMethodError 中的异常:org.apache.commons.cli.Options.addRequiredOption(Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;)Lorg/apache/commons/cli /选项; 在 xyz.plenglin.aurum.spark.RunOnSpark$.main(RunOnSpark.scala:46) 在 xyz.plenglin.aurum.spark.RunOnSpark.main(RunOnSpark.scala) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache .spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:775) 在 org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.

运行java -jar myjar.jar [arguments]没有任何问题。窥视 JAR 内部,我知道org.apache.commons.cli.Options它应该在哪里。

0 投票
1 回答
231 浏览

java - Apache CLI 命令行:删除已解析的选项

描述

我有一个命令行对象来解析我传递给它的选项。下面我向命令行传递了 2 个选项。

问题

我有一个要求,我想通过从命令行中删除一个或多个选项(例如 option2)来运行一些单元测试。我已经尝试过这种方法-

但这给了我一个 java.lang.UnsupportedOperationException。 我正在寻找一种干净的方法来删除我选择的任何选项。

版本

Maven依赖是-