Возможно ли использовать «длинные» параметры для параметров командной строки с apache.commons.cli.CommandLineParser в java? 'Да', я имею в виду не одно слово, а предложение в блок кавычки ('"') приложения Java в настоящее время запускается из файла баш-скриптapache.commons.cli и «длинные» параметры командной строки в Java
Script файл:..
#!/bin/bash
java -cp <classpath> MyClass [email protected]
вызовов (который возвращает только «длинные» для «-p» аргумент и «другой» для «-r» аргумент):
./script.sh -p "long parameter" -r "another long parameter"
Теперь я могу делать только что-то вроде этого, чтобы получить «длинный параметр» строка:
./script.sh -p "long" -p "parameter"
Конечно, я могу добавить «-p» программно столько раз, сколько необходимо, но это мешает мне использовать значения параметров «-», поскольку мне нужно отслеживать другие ключи командной строки. Кроме того, это, кажется, далеко не правильный подход.
опции командной строки созданы так:
org.apache.commons.cli.Options options = new Options();
options.addOption(Option.builder("p").longOpt("param").hasArg().desc("parameter description").build());
А затем разобран так:
CommandLineParser parser = new DefaultParser();
CommandLine line = parser.parse(options, args);
if (line.hasOption('p')) params = line.getOptionValues("param");
'longOpt' относится к _NAME_ опциона, не длина стоимости опциона. Независимо от того, передана ли длинная строка вашему коду, зависит от задействованной оболочки. Какую ОС и оболочку вы используете? –
Я делаю это на MacOSX в оболочке Bash – kami
Какую оболочку вы используете, и она использует двойные кавычки для окружения? –