This parameter can be either a List or a single field (for example a String or a type that has a converter, e.g. File), in which case there needs to be exactly one main parameter.
In the method com.beust.jcommander.JCommander#getMainParameter(java.lang.String) a ParameterException is thrown if the parameter field is not a List type
You may be interested in picocli. It uses @Option for named options and @Parameters for positional parameters, where both can be strongly typed: https://picocli.info/#_positional_parameters
In the documentation (http://jcommander.org/#_main_parameter) it's stated that:
In the method com.beust.jcommander.JCommander#getMainParameter(java.lang.String) a ParameterException is thrown if the parameter field is not a List type