Current 1.30 2012/10/27 Added: JCommander#acceptUnknownOption and JCommander#getUnknownArgs Added: JCommander#allowAbbreviatedOptions (default: false) Added: JCommander#setCaseSensitiveOptions (default: true) Added: Support for enums (Scott M Stark) Fixed: Missing new lines in usage (styurin) Fixed: The description of commands is now displayed on the next line and indented. 1.29 2012/07/28 Fixed: Empty string defaults now displayed as "<empty string>" in the usage Fixed: Bugs with the PositiveInteger validator Fixed: Parameters with a single double quote were not working properly 1.27 2012/07/05 Added: IValueValidator to validate parameter values (typed) as opposed to IParameterValidator which validates strings Added: echoInput, used when password=true to echo the characters (Jason Wheeler) Added: @Parameter(help = true) Fixed: wasn't handling parameters that start with " but don't end with one correctly Fixed: if using a different option prefix, unknown option are mistakenly reported as "no main parameter defined" (kurmasz) Fixed: 113: getCommandDescription() returns the description of the main parameter instead of that of the command Fixed: bug with several multiple arity parameters (VariableArityTest) Fixed: variable arities not working when same parameter appears multiple times. 1.25 2012/04/26 Added: Default passwords are no longer displayed in the usage (Paul Mendelson) Added: Variable arities now work magically, no need for IVariableArity any more Fixed: Commands using @Parameters(resourceBundle) were not i18n'ed properly in the usage() Fixed: StringIndexOutOfBoundsException if passing an empty parameter (bomanz) Fixed: GITHUB-105: If no description is given for an enum, use that enum's value (Adrian Muraru) Fixed: GITHUB-108: Dynamic parameters with "=" in them are not parsed correctly (szhem) Fixed: Commands with same prefix as options were not working properly. Fixed: GITHUB-97: Required password always complains that it is not specified (timoteoponce) 1.23 2012/01/12 Added: @DynamicParameter Fixed: Use JDK 6 Console() when available to improve support of non ascii chars (Julien Henry) 1.20 2011/11/24 Added: Support for delegating parameter definitions to child classes (rodionmoiseev) Added: @Parameter(commandNames) so that command names can be specified with annotations Added: Support for enums (Adrian Muraru) Fixed: Throw if an unknown option is found Fixed: Main parameters are now validated as well (Connor Mullen) 1.19 2011/10/10 Added: commandDescriptionKey to @Parameters, to allow internationalized command descriptions Added: JCommander#setParameterDescriptionComparator for better control over usage() Fixed: Fields of type Set (HashSet and SortedSet) are now supported Fixed: defaults for commands were not properly applied (Stevo Slavic) Fixed: "-args=a=b,b=c" was not being parsed correctly (Michael Lancaster) Fixed: GITHUB-73: descriptionKey was being ignored on main parameters 1.18 2011/07/20 Added: Default converter factories can be overridden (Scott Clasen) Added: IParameterValidator Added: Don't display "Options:" if none were defined Added: Enforce that the type of the main parameter is a List Added: usage() now displays the options for each command as well Fixed: Default values with a validator were being validate at parse() time instead of creation time. Fixed: Exception when using an @ file with empty lines between options Fixed: OOM when parsing certain descriptions with long URL's in them 1.15 2011/01/24 Added: Added a constructor that takes a Bundle only, https://github.com/cbeust/jcommander/pull/47 (Russell Egan) Fixed: NPE with calling getCommandDescription() of an unknown command 1.13 2010/12/15 Added: Boolean parameters with arity 0 (e.g. "foo -debug") Fixed: JCommander would sometimes just print a stack trace and continue, now rethrowing. 1.7 2010/09/06 Added: Command usages are now shown in the order they were added to the JCommander object Fixed: JCommander now compatible with Java 5 Fixed: Minor bug in the command display (Marc Ende) 1.6 2010/08/28 Added: @Parameters(commandDescription = "command description") Added: now throwing an exception if required main parameters are not supplied Fixed: usage() was changing default values after two runs (jstrachan) 1.5 2010/08/15 Added: overloaded versions of usage() with StringBuilders Added: inheritance support (Guillaume Sauthier) Added: support for commands (e.g. "main add --author=cbeust Foo.java") Added: support for converters for main parameters (e.g. List<HostPort>). 1.4 2010/07/28 Added: string converter factories Added: IDefaultProvider Added: PropertyFileDefaultProvider Added: Usage is now showing required parameters and default value Added: Support for values that look like parameters ("-integer -3", "/file /tmp/a") Added: @Parameters(optionPrefixes) to allow for different prefixes than "-" 1.2 2010/07/25 Usage is now aligned and alphabetically sorted Added the hidden attribute Added support for different separators than " " (e.g. "="). Deprecated @ResourceBundle, replaced with @Parameters 1.1 2010/08/15 Better internationalization Password support Type converters