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

对于Java中的命令行解析,我通常使用Apache Commons CLI 。 任何人都可以推荐任何替代库吗?

JCommander听起来像一个非常简单有趣的方法来解析带有注释的命令行参数(来自TestNG的创建者):

您可以使用选项说明注释字段:

import com.beust.jcommander.Parameter; public class JCommanderTest { @Parameter public List 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; } 

然后你只需要让JCommander解析:

 JCommanderTest jct = new JCommanderTest(); String[] argv = { "-log", "2", "-groups", "unit", "a", "b", "c" }; new JCommander(jct, argv); Assert.assertEquals(jct.verbose.intValue(), 2); 

这个答案有帮助吗? 如何在Java中解析命令行参数?

我个人在https://github.com/kohsuke/args4j上使用kohsuke的args4J

我在这里看到一些命令行解释器

在java-source.net,您可以找到至少4个其他替代库到Apache Commons CLI。

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

我使用和喜欢

http://martiansoftware.com/jsap/

它的开源,简单。 它不活跃,我认为作者在火中有其他铁杆。

你可以尝试命令行 (我知道这个匿名的名字)

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

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