Может ли синтаксический анализатор параметров командной строки Apache Commons игнорировать неизвестные параметры командной строки?

Я пишу приложение Java, которое принимает аргументы командной строки, которые обрабатываются с помощью Apache Commons CLI с GnuParser. По причинам, в которые не интересно разбираться, Я хотел бы, чтобы он молча игнорировал неизвестные параметры командной строки вместо того, чтобы генерировать исключение ParseException, но я не вижу способа сделать это. Я вижу, что в GnuParser.parse () есть логическая опция stopAtNonOption, но то, что я хочу, больше похоже на ignoreAtNonOption, где он сохранит параметры обработки после обнаружения неизвестного токена.

Я мог бы реализовать свой собственный синтаксический анализатор, чтобы выполнить это, но я ' Я удивлен, что эта функция не встроена, поэтому я решил проверить, прежде чем идти по этому пути.

Пример кода того, о чем я говорю:

try {
  CommandLine commandLine = parser.parse(options, args);
  // stopAtNonOption set to true (below) is also not what I want
  // CommandLine commandLine = parser.parse(options, args, true);
} catch (ParseException e) {
  LOG.error("error parsing arguments", e);
  throw new RuntimeException(e);
}
20
задан skaffman 18 May 2011 в 18:46
поделиться