Как получить параметры при использовании библиотеки Apache Commons CLI
Я использую интерфейс командной строки Apache Commons для обработки аргументов командной строки в Java.
Я объявил a
а также b
варианты, и я могу получить доступ к значению с помощью CommandLine.getOptionValue()
,
Usage: myapp [OPTION] [DIRECTORY]
Options:
-a Option A
-b Option B
Как мне объявить и получить доступ к переменной DIRECTORY?
2 ответа
Решение
Используйте следующий метод:
CommandLine.getArgList()
который возвращает все, что осталось после обработки параметров.
Может быть лучше использовать другую опцию (-d) для определения каталога, который является более интуитивно понятным для пользователя.
Или следующий код демонстрирует получение списка оставшихся аргументов
public static void main(final String[] args) {
final CommandLineParser parser = new BasicParser();
final Options options = new Options();
options.addOption("a", "opta", true, "Option A");
options.addOption("b", "optb", true, "Option B");
final CommandLine commandLine = parser.parse(options, args);
final String optionA = getOption('a', commandLine);
final String optionB = getOption('b', commandLine);
final String[] remainingArguments = commandLine.getArgs();
System.out.println(String.format("OptionA: %s, OptionB: %s", optionA, optionB));
System.out.println("Remaining arguments: " + Arrays.toString(remainingArguments));
}
public static String getOption(final char option, final CommandLine commandLine) {
if (commandLine.hasOption(option)) {
return commandLine.getOptionValue(option);
}
return StringUtils.EMPTY;
}