对于Java中的命令行解析,我通常使用Apache Commons CLI。 任何人都可以推荐任何替代库吗?
答案 0 :(得分:22)
JCommander听起来像是一个非常简单有趣的方法来解析带有注释的命令行参数(来自TestNG的创建者):
您使用选项说明注释字段:
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;
}
然后你只是要求JCommander解析:
JCommanderTest jct = new JCommanderTest();
String[] argv = { "-log", "2", "-groups", "unit", "a", "b", "c" };
new JCommander(jct, argv);
Assert.assertEquals(jct.verbose.intValue(), 2);
答案 1 :(得分:6)
答案 2 :(得分:5)
答案 3 :(得分:2)
我在这里列出了一些command line interpreters
答案 4 :(得分:2)
在java-source.net,您可以找到至少4个其他替代库到Apache Commons CLI。
答案 5 :(得分:0)
getopt-1.0.11是一个简单易用的轻量级库,我用过一次命令行参数解析
答案 6 :(得分:0)
答案 7 :(得分:0)
你可以试试commandline(我知道这个名字非常匿名)
它使用注释将命令行参数映射到对象模型中。几个解析 模式和一组可以以各种方式组合的注释允许您创建非常高级的命令行选项规则。
虽然它允许您将命令行参数直接映射到域模型, 您应该考虑为命令行参数使用单独的类。