The Apache Commons CLI library provides an API for parsing command-line options passed to an application. It can also print help detailing the options available for that application.
Commons CLI supports different types of options:
tar -zxvf foo.tar.gzdu --human-readable --max-depth=1java -Djava.awt.headless=true -Djava.net.useSystemProxies=true Foogcc -O2 foo.cant -projecthelpA 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.
A full User's Guide is available as are various project reports.
The Javadoc API documents are available online:
The source repository can be browsed.
Download the latest version.
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].
Issues may be reported via the ASF JIRA.
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.
Copyright © 2002-2025 The Apache Software Foundation. All Rights Reserved.