zoukankan      html  css  js  c++  java
  • Java命令行解析:apache commons-cli

    http://commons.apache.org/proper/commons-cli/usage.html

    Apache Commons CLI用于解析命令行选项,也可以输出详细的选项说明信息。

    Commons CLI 支持多种选项类型:

    • POSIX like options (ie. tar -zxvf foo.tar.gz)
    • GNU like long options (ie. du --human-readable --max-depth=1)
    • Java like properties (ie. java -Djava.awt.headless=true -Djava.net.useSystemProxies=true Foo)
    • Short options with value attached (ie. gcc -O2 foo.c)
    • long options with single hyphen (ie. ant -projecthelp)

    Commons CLI处理过程可以分成三个阶段

    • 定义阶段,Options类。
    • 解析阶段,使用CommandLineParser类讲String[] args解析为CommandLine
    • 查询阶段,调用CommandLine对象的方法,查询和提取特定选项。

    命令行选型定义

    Options options = new Options();
    options.addOption("h", "help", false, "Print this usage information");  
    options.addOption("v", "verbose", false, "Print out VERBOSE information" );  
    options.addOption("p", false, "no error if existing, make parent directories as needed.");
    
    options.addOption(OptionBuilder.withArgName("file")
                    .hasArg()
                    .withDescription("search for buildfile towards the root of the filesystem and use it")
                    .create("O"));
    options.addOption(OptionBuilder.withLongOpt("block-size")
                    .withDescription("use SIZE-byte blocks")
                    .withValueSeparator('=')
                    .hasArg()
                    .create() );
    

    解析

    CommandLineParser parser = new BasicParser( );  
    CommandLineParser parser = new PosixParser(); 
    CommandLine commandLine = parser.parse( options, args );  
    

    选型查询和提取

      if( commandLine.hasOption('f') ) {  
        file = commandLine.getOptionValue('f');  
      }  
    
      String[] str = commandLine.getArgs();
    

    显示帮助信息

    HelpFormatter formatter = new HelpFormatter();
    formatter.printHelp("xxcmd [-lkjs] PATH", "", options , "");
    formatter.printHelp( "ant", options );
    formatter.printHelp( "ant", options, true ); //generate a usage statment as well as the help information
    
  • 相关阅读:
    MD5加密
    HDU 1800 Flying to the Mars(Trie字典树 upper_bound)
    POJ 3624 Charm Bracelet(01背包 基础)
    hdu 1005 (规律 循环节)
    ZOJ 3710 friends(暴力 枚举 水)
    zoj 3714 Java Beans(枚举 水)
    hdu 1108 最小公倍数(数论基础 水)
    POJ 1797 Heavy Transportation(dijkstra )
    poj 3984 迷宫问题(bfs 打印路径)
    报数游戏(模拟 枚举)
  • 原文地址:https://www.cnblogs.com/pixy/p/5261347.html
Copyright © 2011-2022 走看看