2

I'm using jcommander 1.72 to handle commands in a REPL (not directly from the command line). I have a parameter that can optionally take a value; if a value is provided, the value is set. If no value is provided, then the current value is printed. E.g.:

> myCmd --foo 5
set foo = 5
> myCmd --foo
current value of foo = 5

I tried this:

@Parameter(names = {"-f", "--foo"}, variableArity=true)
List<String> foo = new ArrayList<>()

But I get this error:

com.beust.jcommander.ParameterException: Expected a value after parameter --foo
    at com.beust.jcommander.JCommander.processFixedArity(JCommander.java:886)
    at com.beust.jcommander.JCommander.processVariableArity(JCommander.java:859)
    at com.beust.jcommander.JCommander.parseValues(JCommander.java:705)
    at com.beust.jcommander.JCommander.parse(JCommander.java:340)
    at com.beust.jcommander.JCommander.parseValues(JCommander.java:787)
    at com.beust.jcommander.JCommander.parse(JCommander.java:340)
    at com.beust.jcommander.JCommander.parse(JCommander.java:319)
    ...

How can I accomplish this in jcommander?

marinier
  • 387
  • 3
  • 13

0 Answers0