1. Options

private Options options = new Options();

2. option

(1) way1

launcher.options.addOption("h", "help", false, "show help.");

(2) way2

launcher.options.addOption(optFile);

3. command line parser

CommandLineParser cmdParser = new DefaultParser();

4. exec method

     private void help() {
        // This prints out some help
         HelpFormatter formater = new HelpFormatter();
         formater.printHelp(this.getClass().getSimpleName(), options);
         System.exit(0);
     }

5. test

java --SNAPSHOT.jar;C:\Users\xiaobin\.m2\repository\commons-cli\commons-cli\1.4\commons-cli-1.4.jar my.csdn9.ConsoleLauncher --help

ConsoleLauncher.java

package my.csdn9;

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.Options;
import org.apache.commons.cli.ParseException;

public class ConsoleLauncher {
    // Step 1: otions
    private Options options = new Options();

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ConsoleLauncher launcher = new ConsoleLauncher();

        // Step 2: add option
        Option optFile = Option.builder( "file" )
                .longOpt( "logfile" )
                 .hasArg(false)
                 .desc(  "use given file for log" )
                 .build();

        // Way I: Direct definition
        launcher.options.addOption("h", "help", false, "show help.");
        // Way II: Use the option class to define
        launcher.options.addOption(optFile);
        // Step 3: cmd parser
        CommandLineParser cmdParser = new DefaultParser();
        try {
            CommandLine cmd = cmdParser.parse(launcher.options, args);
            if (cmd.hasOption("h")) {
                launcher.help();
            }
            if (cmd.hasOption("file")) {
                 System.out.println("----file----");
            }
        } catch (ParseException e) {
            // TODO Auto-generated catch block
             e.printStackTrace();
        }

    }

     // Step 4: exec method
     private void help() {
        // This prints out some help
         HelpFormatter formater = new HelpFormatter();
         formater.printHelp(this.getClass().getSimpleName(), options);
         System.exit(0);
     }

}

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.tdtc</groupId>
  <artifactId>cliDemo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>cliDemo</name>
  <dependencies>
      <dependency>
          <groupId>commons-cli</groupId>
          <artifactId>commons-cli</artifactId>
          <version>1.4</version>
      </dependency>
  </dependencies>
</project>

Reference:

1. java command line interfaces - part 1: apache commons

2. Option.Builder

Apache CLI Demo的更多相关文章

  1. 【java】之 apache commons-codec 与Apache Digest demo实例,支持md5 sha1 base64 hmac urlencode

    使用commons-codec 进行加密的一些操作 package com.jiepu.ApacheDigest; import java.io.FileInputStream; import org ...

  2. C# Apache Thrift Demo

    转载至 https://headsigned.com/posts/csharp-apache-thrift-demo/ This demo application shows how to imple ...

  3. 遇见CUBA CLI

    原文:Meet CLI for CUBA Platform 翻译:CUBA China CUBA-Platform 官网 : https://www.cuba-platform.com CUBA Ch ...

  4. Lucene入门-安装和运行Demo程序

    Lucene版本:7.1 一.下载安装包 https://lucene.apache.org/core/downloads.html 二.安装 把4个必备jar包和路径添加到CLASSPATH \lu ...

  5. How-to: Do Real-Time Log Analytics with Apache Kafka, Cloudera Search, and Hue

    Cloudera recently announced formal support for Apache Kafka. This simple use case illustrates how to ...

  6. atitit.跨语言执行cmd cli api的原理及兼容性设计草案

    atitit.跨语言执行cmd cli api的原理及兼容性设计草案 1. 标准输入,标准输出,标准错误与重新定向1 2. 常见问题2 2.1. 执行bat文件2 2.2. 执行bat文件  /c   ...

  7. Lucene-安装和运行Demo程序

    Lucene是什么 Lucene是一款高性能.可扩展的信息检索工具库.- Lucene In Action Lucene版本:7.1 一.下载安装包 https://lucene.apache.org ...

  8. Apache Poi实现excel解析

    一.说明 1.本文通过使用 poi 工具解析 excel 表格数据,实现导入导出 2.excel目前有两种格式 2003版本的 excel.xls 与 2007版本的 excel.xlsx ,注意两种 ...

  9. Dubbo源码本地运行demo遇到的问题

    从github上拉下来的Dubbo源码,运行Dubbo项目的demo工程,报如下错误(Dubbo版本为2.7.6): Exception in thread "main" java ...

随机推荐

  1. tensorflow object detection

    Follow guidelin from https://github.com/tensorflow/models/blob/master/research/object_detection/g3do ...

  2. Add task bar to ubuntu

    http://www.howtogeek.com/189819/how-to-add-a-taskbar-to-the-desktop-in-ubuntu-14.04/ sudo apt-get in ...

  3. spring boot 学习资料

    spring boot 学习资料: 学习资料 网址 Spring Boot Cookbook-极客学院 http://wiki.jikexueyuan.com/project/spring-boot- ...

  4. webpack 的 入口(Entry)、输出(Output)

    入口(Entry) 入口定义了我们的应用代码开始执行的那个文件,webpack从这个文件开始打包.你能定义一个入口点(常见于单页应用 - Single-Page Application), 或者多个入 ...

  5. 使用Jenkins 安装和自动化部署项目

    安装 jenkins 安装方法可以使用war 安装 或者服务安装.我这里使用  rpm 安装 第一步: 我们使用的 centos  ,选着这个,直接 下载传到服务器上.或者 复制下载链接 到 服务器上 ...

  6. bzoj 3600 没有人的算术——二叉查找树动态标号

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3600 已知 l 和 r 的排名,想快速知道 k 的排名.那么建一个 BIT ,用已知的排名做 ...

  7. 【MatConvNet代码解析】 一些理解

    1.DagNN对象的executionOrder属性 该属性是hidden属性,所以外部是访问不到的.只有dagnn.DagNN类和dagnn.Layer类可以访问到. 该属性的设置是在DagNN类的 ...

  8. eclipse web项目没有run on server

    如下图,将 Dynamic Web Module和Java勾选上

  9. python条件判断,真假

    整形 非0即真 字符串 非空即真 列表,元组,字典,集合为空时 为假 函数 返回值为空(即函数中只写了return后面没参数),为0(即return 0),为空的列表,字典,集合.那么条件判断函数也是 ...

  10. 关于使用MAPVIEWOFFILE大文件的读写(DELPHI版)

    unit filemap; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...