问题标签 [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.
java - Commons CLI getValue() 和 getOptionValue()
我对这两种方法有点困惑。当我使用时,getOptionValue(optionName)
我确实得到了我在命令行中输入的参数,但是当我使用时我得到了 nulloptionName.getValue()
获取值()
返回此 Option 的指定值,如果没有值,则返回 null。
获取选项值(字符串)
检索此选项的第一个参数(如果有)。
正如您所看到getOptionValue(String)
的,明确表示参数,而另一个只表示值,但它们的方法名称中都有“值”。由于没有setValue(String)
方法或类似的东西,我只是假设它与参数相同。
输出是:
1
[参数]
无效的
apache-commons-cli - Apache Commons CLI 在 autoUsage 中命名位置参数
可以在 Apache Commons CLI 中检索位置参数。是否可以为使用说明命名它们?具体来说,Apache Commons CLI 文档提供了一个 ls 示例:
调用时如何使用 HelpFormatter 输出“[FILE] ...” HelpFormatter.printHelp(..., autoUsage = true)
?这些是返回的值CommandLine.getArgs()
。我知道如何Option
在使用消息中命名参数,但不知道如何命名此类位置参数。
java - 命令行参数不按顺序
我正在使用 Common-CLI api 来显示命令的帮助。以下函数显示命令的帮助。
我按以下顺序添加了选项。
当我在选项对象上调用 printHelp 函数时,我得到以下输出。
但我期待以下方式。
谁能告诉我,我怎样才能得到预期的输出?
java - Commons CLI:识别文件名 *.deca
我正在尝试使用 Apache Commons CLI 来识别我的 java 程序的参数。因此,有很多选项(例如“-p”作为示例),但大多数情况下,文件的名称应该用作 java 程序的输入。请注意,所有选项都没有顺序限制。
程序启动示例:
decac -p -r 5 test.deca
我在解析 -p 和 -r (带有参数“5”)选项时没有问题,但是我如何为“test.deca”创建一个选项,知道它可以是任何东西。它也可能类似于 pathTo/anotherTest.deca
java - 我可以区分 org.apache.commons.cli 中的短选项和长选项吗
假设我有一个使用 org.apache.commons.cli 包来获取命令行选项的工具。我定义了一个选项
因此用户可以使用 -v 或 --version 命令行选项调用我的工具。
问题是,我能否在我的代码中判断用户输入的是 -v 还是 --version?
我的想法是将命令行选项的长版本与详细输出相关联,将短版本与非详细输出相关联。因此,如果用户通过 -v,他/她将获得该工具的版本号,但如果用户输入--version,他/她将获得该工具的版本、依赖项的版本、其他一些版本控制和供应商信息,等等
两个问题:
- 可以用 org.apache.commons.cli 有效地完成吗?
- 从用户的角度来看,这是一个好主意吗?这是一种常见的做法还是我在这里发明了一些深奥的东西?
对这种方法的实施和理念的经验丰富的想法值得赞赏。
提前致谢
java - 在 Apache commons CLI 中有条件地要求一个选项
是否有可能在 Apache commons CLI 中有条件地要求选项?例如,我有两个选项-c 和-d。选项 -c 只能从预定义列表中获取一个值(“值一”、“值二”)。有没有办法使选项 -d 仅在 -c 参数设置为“值一”时才需要,但如果 -c 设置为“值二”则保持可选?
java - CLI:getOptionValue 始终返回“null”
您好,对于我的课程,我必须学习使用 CLI,现在看起来还可以。我的问题是:变量 'in' 在使用 cl.getOptionValue("I") 后总是返回 null 。有人可以帮忙吗?
java - Apache Commons CLI:获取选项的字符串值数组
Commons CLI 1.4 出现问题我需要解析无限值字符串选项,例如 exmpl :
-fe .magnet .torrent (参数值以点开头)
Option
我通过创建这个Option.builder()
接下来我将它添加到我的Options
对象中
然后我解析这个,我得到一个异常
org.apache.commons.cli.UnrecognizedOptionException: Unrecognized option: -fe
如何以正确的方式解析两个或多个此参数,通过空格符号分隔?
java - 我如何从 commons cli 中“获取”帮助字符串而不是“打印”
我知道,下面的代码将生成帮助文本并将其打印到控制台
但我如何将帮助文本作为String
对象。我期待类似的东西
CLI
API中是否隐藏了任何方法?或者有什么方法可以获取帮助文本而不是将其打印到控制台。