About the Commons CLI Library

This wiki site is used for discussion of topics associated with the commons-cli project whose home page is http://commons.apache.org/cli

CLI Release 2.0 is currently only available via snapshot from SVN. However here is a sample application to wet your appetites. ../CLI2/SampleApplication


Release 2.0 - Update

CLI2 has been moved to the sandbox and becomes a separate project. Contributions are welcome!

Bad 1.0 release on Ibiblio (Maven)

Release 1.0 occurred in Nov 2002.

Due to an unfortunate accident, the 1.0 jar file published on ibiblio at http://www.ibiblio.org/maven/commons-cli/jars was overwritten at some point by a snapshot of later code, i.e. file commons-cli-1.0.jar became a snapshot of the trunk code at some later time (possibly 29 Jan 2004). The ibiblio repository of jar files is the default location that the Maven build tool uses to automatically download dependencies; therefore any project that uses Maven to build code which declares a dependency on commons-cli 1.0 may have downloaded and cached the incorrect file.

The binary and source distribution downloads available via the download pages of Apache or its mirrors is, and always has been the correct 1.0 release.

The file in question can be found at http://www.ibiblio.org/maven/commons-cli/jars

  • The md5 checksum of the valid 1.0 jar is: f6feeb3b3d95f7d09180fd71e96cead4 and its size is: 30117 bytes.
  • The md5 checksum of the invalid 1.0 jar is: 5cb21f532ab921134751b4b6e4807be4 and its size is: 32377 bytes

The snapshot which was accidentally published on ibiblio contains a number of API differences from the actual 1.0 release. Most obviously, the snapshot jar contains classes OptionValidator and Util which are not present in the real 1.0 release.


The old 1.0 jar was renamed to commons-cli-20040117.000000.jar and a correct commons-cli-1.0.jar put in place.



  • Extend the JDK Classes with Jakarta Commons, Part III - Explore Jakarta Commons components that enable you to parse arguments in a command-line application, connect to various file systems at the same time, allow an application to uniformly access configurations loaded from various sources, and pool any object.
  • No labels