• 使用org.apache.commons.cli包来设计JAVA命令行工具


    一、官方文档:http://commons.apache.org/proper/commons-cli/usage.html

    二、举例说明:

    import org.apache.commons.cli.CommandLine;
    import org.apache.commons.cli.CommandLineParser;
    import org.apache.commons.cli.DefaultParser;
    import org.apache.commons.cli.HelpFormatter;
    import org.apache.commons.cli.Option;
    import org.apache.commons.cli.OptionGroup;
    import org.apache.commons.cli.Options;
    import org.apache.commons.cli.ParseException;
    
    public class MyMain {
    
        public static void main(String[] args) {
            
            Options options = new Options();
            OptionGroup group = new OptionGroup();
            group.addOption(
                    Option.builder("d")
                    .required()
                    .hasArgs()
                    .desc("scan directory")
                    .longOpt("directory")
                    .build()
                    );
            group.addOption(
                    Option.builder("t")
                    .required()
                    .hasArgs()
                    .desc("target directory")
                    .longOpt("template")
                    .build()
                    );
            group.setRequired(true);
            
            
            options.addOptionGroup(group)
                .addOption(
                        Option.builder("i")
                              .hasArgs()
                              .desc("ignore directory")
                              .longOpt("ignore")
                              .build()
                        )
                .addOption(
                        Option.builder("r")
                              .hasArgs()
                              .longOpt("result")
                              .desc("result directory")
                              .build()
                        );
            
            CommandLineParser parser = new DefaultParser();
            CommandLine cmd = null;
            
            try {
                cmd = parser.parse(options, args);
                if(cmd.hasOption("t")){
                    String template = cmd.getOptionValue("template");
                    System.out.println(template);
                }
            } catch (ParseException e) {
                helpU(options);
                return;
            }
    
        }
        
        public static void helpU(Options options){
            HelpFormatter formatter = new HelpFormatter();
            formatter.printHelp("Java -jar MyMain.jar -* ",
                                "This is utility to scan copied files",
                                options, 
                                "ask support: send email to CPEG@calix.com", 
                                true);
            System.exit(1);
            
        }
    
    }
  • 相关阅读:
    【flink】flink1.12 application mode on k8s
    【spark】读取高版本的elasticsearch
    [spark] spark2.4运行在k8s
    【spring】springboot使用jpa集成elasticsearch7.0
    【spark】cache不一定使用的场景
    JDK源码分析
    排序算法
    EagleEye鹰眼原理分析
    需求分析模版
    记一次线上事故内存泄漏:java.lang.OutOfMemoryError: unable to create new native thread
  • 原文地址:https://www.cnblogs.com/lfdingye/p/7643977.html
Copyright © 2020-2023  润新知