Apache Commons CLI 基本使用

需求描述:通过命令行给 Java 程序传递参数,在程序中提取出参数的值。

使用 apache commons-cli 来解决这个问题。

1 引入依赖

<dependency>
  <groupId>commons-cli</groupId>
  <artifactId>commons-cli</artifactId>
  <version>1.4</version>
</dependency>

 2 代码示例

import org.apache.commons.cli.*;

public class Demo {
    public static void main(String[] args) throws ParseException {
        final String[] mockArgs = new String[] { "--foo=bar" };
        parseTest(mockArgs);
    }

    private static void parseTest(String[] args) throws ParseException {
        final Options options = new Options();
        options.addOption(new Option("f", "foo", true, "foo arg demo"));

        CommandLineParser parser = new DefaultParser();
        final CommandLine cl = parser.parse(options, args);

        assert "bar".equals(cl.getOptionValue("foo"));
    }
}

这段代码展示了如何解析形如 --foo=bar 的参数。还支持其他参数形式,具体可查阅官方文档,并参考源码中的单元测试。