org.apache.common.cli 命令行参数解析

xiaoxiao2021-03-01  9

Java命令行解析参数1. Maven引入依赖<dependency>    <groupId>commons-cli</groupId>    <artifactId>commons-cli</artifactId>    <version>1.4</version></dependency>2. 定义各种option

Options options = new Options();

1) 通过Option对象

Option opt = new Option("h", "help", false, "Print help"); opt.setRequired(false); //是否必须含有该参数 options.addOption(opt); 其中Option的参数: 第一个参数:参数的简单形式 第二个参数:参数的复杂形式 第三个参数:是否需要额外的输入

第四个参数:对参数的描述信息

2)直接使用Options的重载函数

options.addOption("h", "help", false, "Print help"); 

3)使用OptionBuilder得到Option对象  1.3废弃OptionBuilder

    使用Option.Builder得到Option对象

    

Option c = Option.builder("c")                                    //c就是opt                  .required(false)                                       //是否必须含有该参数                  .hasArg()                                               //带一个参数                  .argName("filename")                             //参数的名字                  .desc("return sum of characters")            //描述

                 .build();

public Option.Builder argName(String argName)            #我也不知道这个有啥用public Option.Builder longOpt(String longOpt)               #参数的长名称public Option.Builder hasArg()                                     #默认包含一个参数public Option.Builder hasArg(boolean hasArg)                #是否包含参数public Option.Builder hasArgs()                                    #代码中将参数长度设为-2,不知道啥意思public Option.Builder desc(String description)                #描述public Option.Builder required()                                    #默认必须包含该参数public Option.Builder required(boolean required)            #是否必须包含该参数public Option.Builder type(Class<?> type)public Option build()                         当opt和longOpt都为null 会产生异常

Option.Builder只有私有的构造函数,所以只能通过Option类的成员函数

                        public static Option.Builder builder()

                        public static Option.Builder builder(String opt)

创建得到Option.Builder对象

3. 解析命令行 1) CommandLineParser paraer = new BasicParser();          1.3Deprecated. CommandLineParser parser = new PosixParser(); 1.3Deprecated CommandLineParser parser = new GnuParser(); 1.3Deprecated CommandLineParser parser = new DefaultParser(); ok 2) CommandLine cmd= paraer.parse(options, args); 4. 获取参数 1) 判断是否含有指定的参数 if(cmd.hasOption("help")){ } 2) 获得某个命令对应的参数 String arg = cmd.getOptionValue('c') 5. 打印帮助 HelpFormatter hf = new HelpFormatter(); hf.printHelp("Options", options);
转载请注明原文地址: https://www.6miu.com/read-3850044.html

最新回复(0)