欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何使用commons-cli解析java命令行?

程序员文章站 2022-06-13 17:59:39
...

Apache的Commons-CLI 包很好用,可以对命令行参数进行解析和类型转化。

public CliUtil(String[] args) {
        try {
            Options options = new Options();
            options.addOption(new Option("ip", "text", true, "ip must input!"));
            options.addOption(new Option("port", "text", true, "http port must input!"));
            options.addOption(new Option("zkHost", "text", true, "zk host must input!"));

            CommandLineParser parser = new BasicParser();
            CommandLine cmd = null;
            //args = new String[]{"-ip","192.168.28.86","-port","8085","-zkHost","10.167.253.01"};
            try {
                cmd = parser.parse(options, args);
            } catch (ParseException e) {
                e.printStackTrace();
            }

            ip = cmd.getOptionValue("ip");
            port = Integer.parseInt(cmd.getOptionValue("port"));
            zkHost = cmd.getOptionValue("zkHost");

            if (StringUtils.isEmpty(ip) || port == 0 ||StringUtils.isEmpty(zkHost)) {
                throw new Exception();
            }

        } catch (Exception e) {
            logger.error("输入参数初始化失败!", e);
            System.exit(0);
        }
    }