使用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);
        
    }

}

 

转载于:https://www.cnblogs.com/lfdingye/p/7643977.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值