Java 命令行解析:Commons CLI替代方案?

Java 命令行解析:Commons CLI替代方案?,java,command-line,Java,Command Line,对于Java中的命令行解析,我通常使用。 有人能推荐其他图书馆吗?这个答案有用吗? 我看到这里列出了一些您可以找到至少4个Apache Commons CLI的其他替代库。getopt-1.0.11是一个简单易用的轻量级库,我曾经用于命令行参数解析听起来是一种非常简单有趣的方法,可以解析带有注释的命令行参数(来自TestNG的创建者): 您可以使用选项的说明对字段进行注释: 我使用和喜欢 它开源,简单。它不活跃,我想作者还有其他的事情要做。我个人使用kohsuke的args4J,你可以试试(我

对于Java中的命令行解析,我通常使用。 有人能推荐其他图书馆吗?

这个答案有用吗?

我看到这里列出了一些

您可以找到至少4个Apache Commons CLI的其他替代库。

getopt-1.0.11是一个简单易用的轻量级库,我曾经用于命令行参数解析

听起来是一种非常简单有趣的方法,可以解析带有注释的命令行参数(来自TestNG的创建者):

您可以使用选项的说明对字段进行注释:

我使用和喜欢


它开源,简单。它不活跃,我想作者还有其他的事情要做。

我个人使用kohsuke的args4J,你可以试试(我知道这个名字很匿名)

它使用注释将命令行参数映射到对象模型中 模式和一组可以以各种方式组合的注释允许您创建非常高级的命令行选项规则

虽然它允许您将命令行参数直接映射到域模型上,
对于命令行参数,你应该考虑使用单独的类。

如果你要寻求一个你通常使用的替代品,如果你说你所寻找的是正常的选项不提供的话,这将是有用的。老实说,我没有想到一个特别缺失的特性。ested',但它也相当冗长。我只是想知道是否有人在这一领域引入了任何新的想法。在这一类别中,我想我会仔细看看下面的JCommander建议。可能重复至少对我来说,Commons CLI有许多架构问题。它的OptionBuilder不是真正的生成器,它的树型命令没有得到真正的支持,也不支持用户定义的类型。我很欣赏这些指向替代框架的链接,我必须承认我没有注意到这个非常类似的问题。但是,我希望能够联系到那些实际尝试了不同替代方案并能够推荐其中一种的人。在这方面,这是我正在寻找的文章类型:谢谢!Cederic就是这样介绍的:找不到API来打印帮助。请参阅相关问题:JCommander现在在这里,这也是我个人的偏好。args4j比JCommander更灵活。原则相同,但使用和区分参数和o更直观选择。
import com.beust.jcommander.Parameter;

public class JCommanderTest {
  @Parameter
  public List<String> parameters = Lists.newArrayList();

  @Parameter(names = { "-log", "-verbose" }, description = "Level of verbosity")
  public Integer verbose = 1;

  @Parameter(names = "-groups", description = "Comma-separated list of group names to be run")
  public String groups;

  @Parameter(names = "-debug", description = "Debug mode")
  public boolean debug = false;
}
JCommanderTest jct = new JCommanderTest();
String[] argv = { "-log", "2", "-groups", "unit", "a", "b", "c" };
new JCommander(jct, argv);

Assert.assertEquals(jct.verbose.intValue(), 2);