JCommander поддерживает параметры Dynami c без префиксов? - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь перенести CLI для использования JCommander , но мое приложение позволяет передавать пользовательские параметры в командной строке следующим образом:

 ./App.sh -u myusername -customparam1 customval1

В этом случае customparam1 - это имя пользовательского параметра, а customval1 - его значение. Пользователь может передать произвольное количество таких параметров, а имена могут быть любыми, например, customparam2, et c.

Может ли JCommander анализировать параметры такого типа? Я пытался использовать Dynami c Параметры , но было две проблемы:

  • они, кажется, требуют префикса перед именем параметра, например, -Dcustomparam1, где D префикс
  • им требуется символ назначения, например = между именем и значением, а пробел не будет работать как символ назначения

Любые предложения о том, как использовать JCommander для разбора этих параметров?

1 Ответ

0 голосов
/ 20 февраля 2020

Я нашел недокументированный параметр конфигурации acceptUnknownOptions, который можно использовать так:

JCommander jc = JCommander.newBuilder().addObject(app).acceptUnknownOptions(true).build();
...
List<String> unknowns = jc.getUnknownOptions();

...