需求描述:通过命令行给 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 的参数。还支持其他参数形式,具体可查阅官方文档,并参考源码中的单元测试。
