JCommander is very, very good. Apart from the dependency thing, some differences:
Picocli has: - strongly typed positional parameters (in JCommander only options are strongly typed, positional parameters are a list of Strings) - support for POSIX short options (so you can say `<command> -xvfInputFile` as well as `<command> -x -v -f=InputFile`, JCommander only supports the latter) - an arity model that allows a minimum, maximum and variable number of parameters, e.g, "1..*", "3..5" (JCommander only has minimum _or_ variable arity, and these are weakly typed - Strings only) JCommander has: - support for suppressing password echo to the console - case-insensitive option name matching - support for abbreviated options - support for Map fields - internationalization All of these are on the todo list, just haven't got around to them. But the biggest difference is the usage help. People have requested customizable help in JCommander for years but it's not happening. Picocli makes common customizations easy (annotations) and provides a Help API for any further customization. The icing on the cake is the ANSI colors, for example https://remkop.github.io/picocli/#_ansi_colors_and_styles On Sun, Apr 16, 2017 at 8:15 Gary Gregory <[email protected]> wrote: > I use JCommander a lot. Can you explain the difference? Most applications I > work on depend on other jars, so one more is no biggie. > > Thank you! > Gary > > On Apr 15, 2017 7:25 AM, "Remko Popma" <[email protected]> wrote: > > > Everyone, I would love your feedback on this: > > > > https://remkop.github.io/picocli/ > > https://github.com/remkop/picocli > > > > It is heavily inspired by JCommander and Args4j but has improved > > ergonomics, customizable help (with colors) and various other > improvements. > > > > I hope this will be useful in the log4j-tools module, but any kind of > > feedback would be great. > > > > Remko > > >
