Apache Common CLI 用于开发命令行工具,可以实现命令参数的解析。
一、构造所需要的参数
如果我们希望接收某个参数,需要按照这个方式进行构建。
方式一(通过OptionBuilder构建)、
Option testOption = Option.builder("F")
.longOpt("full")
.argName("a string")
.hasArg()
.desc("the full path")
.build();
代表可以接收一个-F或者也可以用--full来描述的参数,该参数的展示名称为a string,该参数需要一个值、该参数的描述是the full path
调用方式:testapp -F abc或者testapp --full abc
构建后,通过options.addOption(testOption)注册即可。
方式二(调用Option构造函数)、
options.addOption(new Option("H", "help", false, "help information"));
代表testapp -H或testapp --help可调用。
二、解析参数
DefaultParser cmdPaser = new DefaultParser();
// 创建默认解析器
CommandLine commandLine = cmdPaser.parse(options, args);
// 传入构建好的options并产生CommandLine
三、获取值和检测
pid = commandLine.getOptionValue("P");
// 获取-P的参数(同样也会获取到LongOpt)
commandLine.hasOption("A")
// 判断是否传入-A参数(同样也会获取到LongOpt)
三、输出帮助信息
调用HelpFormatter可以直接打印Options所需内容
if (commandLine.hasOption("H")){
HelpFormatter formatter = new HelpFormatter ();
formatter.printHelp ("command: MyApp [options]", options);
return;
}