Java Command Line Parsers Comparison
来自picocli的几个java cli 处理框架的比较,转自:https://github.com/remkop/picocli/wiki/CLI-Comparison
Overview
Name | Creator | First Public Release | Latest Stable Version | Latest Release Date | Minimum Java Version | Software License |
---|---|---|---|---|---|---|
Remko Popma |
2017-04-15 |
4.1.2 |
2019-12-08 |
5 |
Apache 2.0 |
|
Airlift |
2012-01-15 |
0.8 |
2017-08-28 |
8 |
Apache 2.0 |
|
Rob Vesse |
2015-06-22 |
2.7.2 |
2019-07-23 |
7 |
Apache 2.0 |
|
Tatsuhiro Tsujikawa |
2011-11-30 |
0.8.1 |
2017-09-18 |
6 |
MIT |
|
John Lloyd |
Fall 2004 |
1 |
Fall 2004 |
4 |
- |
|
Kohsuke Kawaguchi |
2005-05-10 |
2.33 |
2016-01-31 |
6 |
||
Marco Tonti |
2006-05-16 |
0.9 |
2006-05-16 |
4 |
LGPL 2 |
|
Sam Pullara |
2011-09-18 |
1.1.5 |
2019-01-25 |
5 |
Apache 2.0 |
|
Stephen Ostermiller |
2003-01 |
1.08.02 |
2010 |
5 |
GPL |
|
Jan Kroken |
2014-03-06 |
1.7.0 |
2014-03-06 |
8 |
Apache 2.0 |
|
2014-07-21 |
0.6.0 |
2014-08-16 |
6 |
BSD |
||
The Digital Product Meta Library |
2006-12-01 |
2.1.1 |
2008-08-22 |
6 |
Apache 2.0 |
|
Matthias Laux |
2004-08 |
1.0 |
2004-08 |
5 |
- |
|
Apache Commons |
2002-11-06 |
1.4 |
2017-03-09 |
5 |
Apache 2.0 |
|
2013-03-18 |
0.1.1 |
2013-08-22 |
6 |
Apache 2.0 |
||
2003 |
1.0 |
2013-02-27 |
4 |
BSD |
||
Steve Purcell & Ewan Mellor |
2001 |
1.0 |
2013-04-17 |
5 |
BSD |
|
Aaron M. Renn |
1998 |
1.0.14 |
2012-02-08 |
4 |
LGPL 2 |
|
Giles Winstanley |
2011-07-05 |
2.0 |
2018-12-04 |
8 |
BSD |
|
Lynne Lawrence |
2002-10-29 |
2.0.0 |
2002-10-29 |
4 |
Mozilla Public License 1.1 |
|
Cédric Beust |
2010-10-12 |
1.71 |
2017-05-17 |
8 |
Apache 2.0 |
|
Brett Wool- dridge |
2005-06-22 |
1.2 |
2011-08-19 |
? |
zlib/libpng (binary distribution) |
|
Tim Wood |
2011-10-20 |
0.8.9 |
2014-02-13 |
6 |
Apache 2.0 |
|
Paul Holser |
06-Nov-2011? |
5.0.4 |
2017-07-14 |
8 |
MIT |
|
Martian Software |
2004-02-24 |
2.1 |
2006-08-03 |
4 |
LGPL |
|
Ferran Busquets |
2007-12-08 |
1.2.2 |
2008-07-20 |
4? |
Apache 2.0 |
|
jf.zarama |
2008-08-09 |
0.0.93 |
2011-09-19 |
4 |
Apache 2.0 |
|
Damian Ryan Eads |
2001-10-18 |
0.2.1 |
2001-10-24 |
3 |
GPL |
|
ryenus |
2013-03-23 |
1.1.1 |
2013-09-18 |
7 |
MIT |
|
Andrew S. Townley |
2003-06-07 |
3.0.0-pre3 |
2005-02-06 |
4 |
BSD |
Name | API | Generates Usage Help | Custom- izable Usage Help | User Manual | Facilitates Source Inclusion | Required depen- dencies |
---|---|---|---|---|---|---|
annotations & reflection, and builder API (use either or both together) |
yes |
yes |
yes |
yes |
- |
|
annotations & reflection |
yes |
readme |
no |
Google Guava |
||
annotations & reflection |
yes |
yes |
no |
Javax Inject, Apache Commons Collections 4 |
||
Builder |
yes |
yes |
no |
- |
||
Builder |
yes |
javadoc |
yes |
- |
||
annotations & reflection |
yes |
partial |
no |
- |
||
method name reflection |
yes |
readme |
yes |
- |
||
annotations & reflection |
yes |
readme |
yes |
- |
||
Builder |
yes |
readme |
yes |
- |
||
annotations & reflection |
no |
- |
readme |
no |
- |
|
Generates code from usage help |
yes |
yes |
readme |
yes |
- |
|
Builder |
yes |
yes |
no |
? |
||
Builder |
no |
- |
yes |
yes |
- |
|
Builder |
yes |
yes |
yes |
- |
||
Builder |
yes |
readme & javadoc |
no |
Google Guava |
||
Descriptor & reflection |
no |
- |
no |
yes |
- |
|
Builder |
no |
- |
no |
yes |
- |
|
Getopt |
no |
- |
javadoc |
yes |
- |
|
Builder |
yes |
readme |
yes |
- |
||
Builder |
yes |
yes |
yes |
- |
||
annotations & reflection |
yes |
no |
yes |
no |
- |
|
Generates code from XML |
yes |
yes |
yes |
- |
||
annotations & reflection |
yes |
yes |
no |
optionally Google Guava, Google Guice, LambdaJ, Commons Lang 3 |
||
Builder |
yes |
yes |
no |
- |
||
Builder |
yes |
yes |
no |
- |
||
Builder |
yes |
yes |
no |
- |
||
Builder |
yes |
readme |
yes |
- |
||
Builder |
yes |
yes |
yes |
- |
||
annotations & reflection |
yes |
readme |
yes |
- |
||
Declarative with callbacks |
yes |
yes |
no |
- |
Name | POSIX Short Option Groups | Configurable Option Prefix | Strongly Typed Option Parameters | Strongly Typed Positional Parameters | Multi-value Options |
---|---|---|---|---|---|
yes |
yes |
yes |
yes |
yes |
|
yes |
no |
yes |
yes |
yes |
|
yes |
no |
yes |
no |
yes |
|
yes |
yes |
yes |
no |
yes |
|
no |
yes |
yes |
yes |
yes |
|
no |
yes |
yes |
yes |
yes |
|
no |
no |
yes |
no |
yes |
|
no |
no |
yes |
no |
no |
|
no |
no |
no |
no |
no |
|
yes |
no |
no |
no |
no |
|
yes |
no |
no |
no |
yes |
|
yes |
no |
no |
no |
yes |
|
no |
no |
no |
no |
yes |
|
yes |
no |
no |
no |
yes |
|
no |
yes |
yes |
yes |
yes |
|
no |
no |
yes |
? |
yes |
|
yes |
no |
yes |
no |
no |
|
yes |
no |
no |
no |
no |
|
yes |
no |
yes |
no |
yes |
|
no |
no |
yes |
no |
no |
|
no |
yes |
yes |
no |
yes |
|
no |
no |
numbers |
no |
no |
|
no |
no |
yes |
yes |
yes |
|
yes |
no |
yes |
yes |
yes |
|
no |
no |
yes |
no |
no |
|
no |
yes |
yes |
no |
yes |
|
no |
yes |
no |
no |
no |
|
no |
no |
yes |
no |
yes |
|
no |
no |
yes |
no |
no |
|
yes |
no |
no |
no |
yes |
Name | Subcommands | Exclusive Options | Configurable Validation | i18n |
---|---|---|---|---|
yes |
yes (in 4.0) |
minimal (use jsr-380) |
yes |
|
yes |
no |
no |
no |
|
yes |
yes |
no |
no |
|
yes |
yes |
no |
layout is locale-aware |
|
no |
no |
no |
no |
|
yes |
yes |
no |
yes |
|
no |
no |
no |
no |
|
no |
no |
no |
no |
|
no |
no |
yes |
no |
|
no |
no |
no |
no |
|
no |
yes |
no |
no |
|
yes |
no |
yes |
no |
|
no |
no |
no |
no |
|
no |
no |
no |
no |
|
yes |
no |
no |
no |
|
no |
no |
no |
no |
|
no |
no |
no |
no |
|
no |
no |
no |
yes |
|
no |
no |
no |
yes |
|
no |
no |
no |
yes |
|
yes |
no |
yes |
yes |
|
no |
no |
no |
no |
|
no |
no |
no |
yes |
|
no |
no |
no |
no |
|
no |
no |
no |
no |
|
no |
no |
no |
no |
|
no |
no |
yes |
no |
|
yes |
no |
no |
no |
|
yes |
no |
no |
no |
|
no |
yes |
no |
yes |