zoukankan      html  css  js  c++  java
  • JCommander 解析命令行参数

    package xxxx


    import com.beust.jcommander.JCommander;
    import com.beust.jcommander.Parameter;
    import java.util.ArrayList;
    import java.util.List;

    public class JcomEx {
    @Parameter
    private List<String> parameters = new ArrayList<String>();

    @Parameter(names = { "-log", "-verbose" }, description = "Level of verbosity")
    private Integer verbose = 1;

    @Parameter(names = "-groups", description = "Comma-separated list of group names to be run")
    private String groups;

    @Parameter(names = "-debug", description = "Debug mode")
    private boolean debug = false;

    public static void main(String[] args) {
    JcomEx jct = new JcomEx();
    String[] argv = { "-log", "2", "-groups", "unit" };
    JCommander jc = new JCommander(jct, argv);
    System.out.println(jct.groups);
    System.out.println(jct.debug);
    System.out.println(jct.debug);
    }

    }


    输出:

    unit
    false
    false

    maven库:

    com.beust.jcommander


    在命令行上,参数key和value之间默认使用空格,也可以使用其他符号

    参考:http://blog.csdn.net/navyhu/article/details/40430267

    参数默认用空格分隔,但是我们也可以指定自己的分隔符,比如用“:”, “=”等,java Main -log:3
    可以在参数类定义中使用@Parameter annotation指定分隔符 

     
      1. @Parameters(separators = "=")  
      2. public class SeparatorEqual {  
      3.   @Parameter(names = "-level")  
      4.   private Integer level = 2;  
      5. }  
  • 相关阅读:
    痛苦之旅——安装Eric4
    如何把自己写的python程序给别人用
    (转)史上最好的Python线程指南
    (转)python编码问题
    Beautiful Soup的一些中文资料
    oracle监听配置
    redhat6.5安装oracle 11g
    《深入浅出MFC》– Document-View深入探讨
    CAS解扰小结
    ts包、表、子表、section的关系
  • 原文地址:https://www.cnblogs.com/brainstorm/p/7562407.html
Copyright © 2011-2022 走看看