问题标签 [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 回答
19828 浏览

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

我想要类似的东西:

有内容:

...输出是:

我希望-job1它应该打印-job1 -C <> -W <>

我错过了什么吗?它不适用于一个以上的论点。顺便说一句,我使用commons-cli 1.2.

0 投票
2 回答
503 浏览

java - Unix 上的 Java Apache Commons CLI;> 被视为可执行文件的参数而不是重定向

我正在尝试在 Windows 和 Unix 上自动化一些命令行测试。我正在使用 Java 1.6 和 Apache Commons CLI 1.1 来执行此操作。我在 Java 代码中所做的是构建我想要使用 Apache Commons CLI addArgument 方法运行的命令。在构建要运行的命令行后,我想将命令的输出通过管道传输到文件中,因此我将以下内容添加到命令的末尾

cloudscanOutputFilename 是包含我要使用的文件名的字符串。这在 Windows 上运行良好,命令被构建,被重定向的两个参数被添加并且文件被很好地创建。但是,在 Unix 上,它将 > 和文件名字符串视为可执行文件的附加参数,而不是重定向。

我该怎么做才能让 Unix 读取这个命令,就好像它是在命令行上直接输入的一样?我已将命令作为字符串输出并在 Unix 中复制并粘贴它,它按预期工作,但是当从 Java 程序运行时,重定向没有得到正确处理。

我尝试使用该方法的 addArgument(string, boolean) 版本作为 true 和 false ,但都没有帮助。这真的让我发疯了。

0 投票
1 回答
6718 浏览

java - 使用 Apache common-cli 解析参数

Apache common-cli 在其网站上有一个ls命令示例:

这显示了这样的帮助:

  1. 当我编写此代码时,它显示--block-size <SIZE>. 我想展示这样的东西:(-z,--block-size=SIZE不仅仅是长选项)。
  2. PosixParser和有什么区别GnuParser?我在代码中更改了它们,我没有观察到任何差异。
  3. 例如,当我提供错误选项时,h它没有throw任何ParseException. 程序正常启动和结束。
0 投票
2 回答
16606 浏览

java - Commons CLI 所需的组

我正在用 Java 编写命令行应用程序,并且我选择了 Apache Commons CLI 来解析输入参数。

假设我有两个必需的选项(即 -input 和 -output)。我创建新的 Option 对象并设置所需的标志。现在一切都很好。但我有第三个,不是必需的选项,即。-帮助。使用我提到的设置,当用户想要显示帮助(使用 -help 选项)时,它会说“-input and -output”是必需的。有什么方法可以实现这个(通过 Commons CLI API,而不是简单的 if (!hasOption) throw new XXXException())。

0 投票
1 回答
8176 浏览

java - Java:使用 Apache Commons CLI 1.2 的 NoClassDefFoundError

我正在使用 Apache Commons CLI 1.2 来解析 Java 中的命令行参数。我NoClassDefFoundError在尝试运行我的 java 类时遇到了问题,但通过修复类路径解决了它。

现在我有同样的例外,但关于实际的commons-cli类,如下所示:

我唯一能想到的是将类路径设置为 commons-cli jar,但这不起作用。我一直无法找到修复NoClassDefFoundError导入类的解决方案。我以为这些被编译成 .class 文件?

0 投票
2 回答
39784 浏览

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

我创建了一个可执行 jar 并使用 commons-cli 让用户能够在启动客户端时指定命令行参数。一切正常。但是,当我打印 jar 的使用说明时,我想显示以下内容:

使用 commons-cli 可以轻松打印所有选项。但是,“使用”行是头疼的。我似乎无法找到从传递给应用程序的 args[] 中获取“myprog.jar”名称的方法。

有什么简单的方法可以做到这一点吗?我可以使用一种非常复杂的方法从我的类的类加载器中进行回溯,并确定它是否包含在一个 jar 中,但这对于应该是一个非常简单的问题来说似乎是一个相当丑陋的答案。

0 投票
1 回答
3021 浏览

java - 基于 '=' 解析命令行参数

我正在使用apache commons.cli库来解析命令行参数。默认的解析行为是它基于空格解析参数。我正在使用 ant 将参数传递给我的 Java 程序,而 ant 使用的语法略有不同,并且使用=的是空格而不是空格。如何更改基于 = 而不是空间解析的解析行为?我的解析目前看起来像这样:

0 投票
1 回答
2496 浏览

java - Require one argument only in Apache Commons CLI?

I'm just wondering is there any way in the Apache Commons CLI library to specify that exactly one argument must be provided?

E.g. I have 2 command line arguments, but one (no more or no less) must be provided? I want either the ip or msisdn, but not neither and not both:

Many thanks!

0 投票
5 回答
6410 浏览

java - Apache Commons CLI - 订购帮助选项?

我正在使用 Apache Commons CLI。默认情况下,它按字母顺序在命令行上按字母顺序排列帮助选项。所以,出现的是:

但我想按如下方式订购它们:

我知道您可以使用一个 OptionFormatter 类并将其传递给 HelpFormatter,但看不到任何关于如何将其用于上述目的的示例(http://www.marko.homeunix.org/programming/java/ commons-cli/api/org/apache/commons/cli/HelpFormatter.OptionComparator.html)。

只是想知道有没有人做过类似的事情?

谢谢

0 投票
2 回答
16968 浏览

java - -help 选项中的 Apache Commons CLI 多个参数值名称

我使用 Apache Commons CLI 来解析命令行参数。

我正在寻找一种在帮助中显示多个参数值名称的方法。以下是选项“startimport”的一个参数的示例:

当我使用 -help 时,它会打印出来:

那很好。但是如果我想使用两个参数呢?

解析这两个参数不是问题,但我希望“-help”中的以下输出:

但目前我只会得到:

这个问题有合适的解决方案吗?