Существуют ли хорошие библиотеки Java, которые облегчают создание приложений с командной строкой?
Мне нужно написать простое приложение командной строки в Java. Было бы неплохо использовать библиотеку, которая заботится о командах синтаксического анализа и заботится о таких вещах, как флаги и необязательные/обязательные параметры...
UPDATE
Что-то, что имеет встроенное завершение TAB, будет особенно велико.
Ответы
Ответ 1
Я использовал Apache Commons CLI library для анализа аргументов командной строки. Он довольно прост в использовании и имеет достаточно хорошую документацию.
Какая выбранная вами библиотека, вероятно, сводится к тому типу опций, которые вы предпочитаете ( "--gnu-style" или "-javac-style" ).
Обновление: picocli TAB завершение недавно стало доступно и может представлять интерес. Не известно о какой-либо другой библиотеке синтаксического анализа командной строки, которая обеспечивает завершение командной строки, запрошенную в OP.
Ответ 2
JLine выглядит полезным.
JLine - это библиотека Java для обработки ввода в консоль. Он похож по функциональности на BSD editline и GNU readline. Люди, знакомые с возможностями readline/editline для современных оболочек (например, bash и tcsh), найдут большинство функций редактирования команд JLine, чтобы они были знакомы.
И это завершает вкладку вкладки в функции.
Ответ 3
Когда вы ищете библиотеку, которая облегчает разработку интерактивного приложения оболочки, я предлагаю Cliche.
Ответ 4
Посмотрите arg4j.
Ответ 5
В нашей компании мы используем JewelCli, который использует определение аннотированного интерфейса Java для описания интерфейса командной строки в декларативном стиле.
Легкий и простой в использовании, я рекомендую его.
Ответ 6
Я использовал Java Simple Argument Parser. Он обрабатывает всевозможные типы опций, имеет хорошо продуманную и библиотеку (включая возможность писать собственные парсеры) и обеспечивает хорошую документацию как в JavaDocs, так и онлайн.
Я думаю, что ваше желание заполнения вкладки будет рассмотрено оболочкой, а не библиотекой разбора командной строки.
Ответ 7
Существует Java-порт библиотеки GNU getopt для синтаксического анализа командной строки. Для редактирования команды и завершения TAB существует JLine (как уже указывали mmyers).
Ответ 8
Я использовал JSAP. Я нашел его стабильным и хорошо документированным.
Я не уверен, что понимаю, что вы подразумеваете под "встроенным завершением TAB". Вы можете уточнить.
Ответ 9
Также стоит посмотреть - jopt-simple.
Он пытается соблюдать синтаксисы опций командной строки POSIX getopt() и GNU getopt_long(). '
Кажется, что у него какое-то отношение к сообществу, в частности, это синтаксический анализ командной строки для OpenJDK.
Кроме того, как упоминал Бретт, завершение табуляции обычно предоставляется вашей оболочкой - вы должны написать функции оболочки, чтобы обеспечить желаемую функциональность.
p.s. Извините за дублированный ответ, но этот вопрос почти идентичен библиотеке Java для анализа параметров командной строки?
Ответ 10
Я попробовал несколько библиотек и в итоге использовал argparse4j. Это действительно хороший Java-порт Python argparse.