Commons CLI

转载 2013年12月04日 13:54:55

Commons CLI

The Apache Commons CLI library provides an API for parsing command line options passed to programs. It's also able to print help messages detailing the options available for a command line tool.

Commons CLI supports different types of options:

  • 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 Foo)
  • Short options with value attached (ie. gcc -O2 foo.c)
  • long options with single hyphen (ie. ant -projecthelp)

A typical help message displayed by Commons CLI looks like this:

usage: ls
 -A,--almost-all          do not list implied . and ..
 -a,--all                 do not hide entries starting with .
 -B,--ignore-backups      do not list implied entried ending with ~
 -b,--escape              print octal escapes for nongraphic characters
    --block-size <SIZE>   use SIZE-byte blocks
 -c                       with -lt: sort by, and show, ctime (time of last
                          modification of file status information) with
                          -l:show ctime and sort by name otherwise: sort
                          by ctime
 -C                       list entries by columns

Check out the introduction page for a detailed presentation.

CLI 2?

Commons CLI 1.0 was formed from the merger of ideas and code from three different libraries - Werken, Avalon and Optz. In dealing with the bugs and the feature requests a freshly designed and not backwards compatible CLI 2 was created in 2004, but never finished or released.

The current plan is to continue to maintain the 1.x line. The CLI2 work may be found in the Commons Sandbox.


A full User's Guide is available as are various project reports.

The Javadoc API documents are available online:

The Subversion repository can be browsed.


The latest version is v1.2. - Download now!
The release notes are also available.

For previous releases, see the Apache Archive.


The commons mailing lists act as the main support forum. The user list is suitable for most library usage queries. The dev list is intended for the development discussion. Please remember that the lists are shared between all commons components, so prefix your email subject by [cli].

Commons CLI使用详解

Preface: Apache Commons CLI library为用户提供了一个解释命令行的API.它在解释命令行时主要有三个状态,即:定义、解释和询问交互。下面的部分中将会详细的讨论这三个部分...
  • faye0412
  • faye0412
  • 2008年09月19日 09:04
  • 27449

apache-comnons系列之commons-cli1.4 学习笔记

apache-comnons系列之commons-cli1.4 学习笔记概述 参考 CommandLinePa...
  • undergrowth
  • undergrowth
  • 2017年08月03日 22:59
  • 242

Apache-common 包之 common-cli 笔记

Apache-common 包之 common-cli 笔记
  • DavidHsing
  • DavidHsing
  • 2010年08月28日 01:22
  • 11110


转载自:        CLI 即Command Line Interface,也就...
  • zero__007
  • zero__007
  • 2016年07月31日 20:50
  • 749

Java命令行参数类 Commons CLI使用

Commons CLI库是apache的一个子项目,比较起来,其使用方法相对规范。 Test...
  • qq_23146763
  • qq_23146763
  • 2017年05月21日 18:55
  • 483


  • jianggujin
  • jianggujin
  • 2016年04月13日 16:57
  • 2996

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/cli/ParseException

今天用maven编译文件,报了这个错。经过一番折腾,发现并不是项目的问题,而是maven本身损坏了,重装maven后解决。 总结:如果使用maven编译的时候,瞬间报异常,那么可以考虑可能并...
  • j754379117
  • j754379117
  • 2017年07月21日 12:01
  • 459

解决sikuli-ide NoClassDefFoundError: org/apache/commons/cli/ParseException

问题:~$ sikuli-ide -hException in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/cli...
  • xyh421
  • xyh421
  • 2017年05月09日 10:21
  • 482

Commons CLI使用

原来粗略的浏览过apache Commons CLI,今天有个项目用到了,竟然没有印象,又重新浏览了一下,在此纪录一下。 Apache Commons CLI library为用户提供了一个解释命令...
  • wangyang_software
  • wangyang_software
  • 2016年01月14日 15:28
  • 946

org.apache.commons.cli.BasicParser deprecated

Apache的命令行参数解析器自 1.3版本后就废弃了org.apache.commons.cli.BasicParser解析器,原因为2层解析器处理复杂情形时缺乏足够的柔性。可以下面的类替代: or...
  • hongweigg
  • hongweigg
  • 2017年03月01日 09:49
  • 475
您举报文章:Commons CLI