Библиотека Rop описана на ее главной странице как «облегченный анализатор параметров командной строки, написанный на Java». «Введение» в Rop также гласит: «Rop спроектирован так, чтобы быть минимальным и в то же время удобным и охватывать большинство обычных случаев использования синтаксического анализа командной строки» Этот пост является двадцать третьим в этой серии, посвященном анализу аргументов командной строки в Java, и посвящен Rop.
Как и двадцать два поста в этой серии до этого, в этом посте используются примеры, реализующие два параметра командной строки, один для пути к файлу и имени и один для уровня многословия. Полный код, приведенный в примере, доступен на GitHub .
Этап «определение» выполняется в Rop с помощью аннотаций @Command и @Option (оба они вложены в класс com.github.ryenus.rop.OptionParser ). Это показано в следующем листинге кода.
Этап «Определение» с Rop
|
01
02
03
04
05
06
07
08
09
10
11
12
|
/** * Demonstrates use of Rop for processing command line * parameters in Java. */@Command(name="RopDemo", descriptions="Demonstrates ROP for command line processing.")public class Main{ @Option(opt={"-f", "--file"}, description="Path and name of file.") private String file; @Option(opt={"-v", "--verbose"}, description="Indicates whether verbosity is enabled or not.") private boolean verbose; |
Этап «синтаксического анализа» выполняется в Rop путем создания экземпляра экземпляра OptionParser и передачи ему определения класса, поля которого были аннотированы на этапе «определения». Это показано в следующем листинге кода.
«Парсинг» этап с Rop
|
1
2
|
final OptionParser parser = new OptionParser(Main.class);parser.parse(arguments); |
Метод OptionParser.parse(Class) неявно вызывает (через отражение) метод с именем «run» в экземпляре, предоставленном парсеру при его создании. Я реализовал этот метод «run», как показано в следующем листинге кода.
Этап «Допрос» с Rop (включая метод «бег»)
|
01
02
03
04
05
06
07
08
09
10
|
/** * Method called implicitly by Rop parser. * * @param parser Instance of {@code OptionParser} whose * "parse" method led to my implicit invocation. */private void run(final OptionParser parser){ out.println("File path/name is " + file + " and verbosity is " + verbose);} |
В приведенном выше листинге метода «run» демонстрируется «опрос», который осуществляется путем доступа к аннотированным полям @Option, которые были заполнены OptionParser.parse(String[]) .
На следующих трех снимках экрана показаны этапы «определения», «анализа» и «опроса», выполненные с помощью Rop. Первое изображение указывает на сообщение об ошибке, которое отображается, когда не указана требуемая опция «файл». Второе изображение показывает нормальное поведение примера, который обрабатывает комбинации коротких и длинных имен опций «файл» и «подробный». На третьем изображении показана встроенная поддержка Rop «помощи», которая отображается, когда указана опция --help .
Есть характеристики Rop, которые следует учитывать при выборе платформы или библиотеки, чтобы помочь с анализом командной строки в Java.
- Rop с открытым исходным кодом с лицензией MIT .
- Rop, как рекламируется, легкий; Размер файла rop-1.1.1.jar составляет около 18 КБ и не требует сторонних зависимостей.
- Классы в
rop-1.1.1.jarимеют «главную версию: 51», что означает, что Java SE 7 требуется при использовании этих скомпилированных классов.
Rop — это легкая библиотека на основе Java для обработки параметров командной строки, которая проста в освоении и использовании.
Дополнительные ссылки
- Rop Главная страница
- ryenus / rop (GitHub)
- Rop 1.1.1 (Maven)
| Опубликовано на Java Code Geeks с разрешения Дастина Маркса, партнера нашей программы JCG . Смотрите оригинальную статью здесь: Интерфейсы командной строки Java (часть 23): Rop
Мнения, высказанные участниками Java Code Geeks, являются их собственными. |


