Apache Commons CLI 中的 DefaultParser
Posted
技术标签:
【中文标题】Apache Commons CLI 中的 DefaultParser【英文标题】:DefaultParser in Apache Commons CLI 【发布时间】:2013-03-21 21:25:57 【问题描述】:我想试用 Apache Commons CLI,并想从其网页上的“使用”部分开始。
http://commons.apache.org/proper/commons-cli/usage.html
现在,该示例建议创建一个DefaultParser
,但我能找到的最接近的声音是BasicParser
。这是要使用的东西吗,我错过了什么吗?
【问题讨论】:
【参考方案1】:我用GnuParser()
代替DefaultParser()
,效果很好。CommandLineParser parser = new GnuParser();
更新:在 CLI 的 1.3.1 版中,GnuParser()
现在已弃用。所以我只是添加了 import org.apache.commons.cli.DefaultParser;
现在我使用 CommandLineParser parser = new DefaultParser();
一切都很好!
【讨论】:
【参考方案2】:您使用的是哪个版本的 CLI? DefaultParser 直到 1.3 快照才添加。
http://commons.apache.org/proper/commons-cli/apidocs/org/apache/commons/cli/DefaultParser.html
【讨论】:
但是 maven 只有到 1.2。 maven 什么时候会得到 1.3-SNAPSHOT? 在哪里可以找到 1.3-Snapshot 供下载?【参考方案3】:我在使用 commons-cli 1.2 关注 same usage guide 时遇到了同样的问题,并找到了以下可用的解析器:
org.apache.commons.cli.BasicParser
org.apache.commons.cli.GnuParser
org.apache.commons.cli.PosixParser
它们都扩展了 org.apache.commons.cli.Parser 并且只实现了flatten
方法。您可以查看Parser's javadoc(和实现解析器)了解更多信息。
【讨论】:
【参考方案4】:此 DefaultParser 类属于 Apache CLI 1.3,因此要使用它,您必须使用 jar varsion 1.3 更新您的类路径
【讨论】:
以上是关于Apache Commons CLI 中的 DefaultParser的主要内容,如果未能解决你的问题,请参考以下文章
Hadoop NoSuchMethodError apache.commons.cli