Подтвердить что ты не робот

Java CLI UI-дизайн: рамки или библиотеки?

В настоящее время я работаю над небольшой утилитой, для которой требуется только интерфейс командной строки, и я начал задаваться вопросом, предоставил ли Java какой-либо стандартный способ создания CLI, аналогично тому, как Swing и подобные существуют для графических интерфейсов. Меня не интересуют параметры командной строки и их синтаксический анализ, а скорее взаимодействие на основе команд, которое пользователь имеет с программой для ее использования. Это касается ситуаций, когда GUI просто не нужен или не используется для использования программы.

Взаимодействие с объектом в значительной степени приводит только к учебникам о том, как использовать BufferedReader и любит делать рудиментарное взаимодействие с пользователем, ориентируясь на людей, изучающих основы Java и написание простого пользовательского интерфейса, который запрашивает имя и отпечатки "Hello World!" и т.д..

Являются ли какие-либо библиотеки, которые сосредоточены на предоставлении хорошей структуры для быстрого внедрения более сложного интерфейса CLI, или это действительно то, что каждый реализует ad hoc для своих собственных утилит?

Может быть, кто-то знает шаблоны для реализации, которые были созданы во времени, когда не все было графическим? Это также было бы полезным ресурсом.

4b9b3361

Ответ 2

Вы также можете просмотреть оболочку Clamshell-cli или spring:

  • Clamshell-cli относительно прост и прост в использовании: вы можете посмотреть jmx-cli, чтобы получить хороший пример того, что с ним можно сделать.

  • Spring Shell больше, но больше полнофункциональна (вкладка завершена и т.д.). Он был извлечен из spring Roo и выпущен как независимая структура

Ответ 3

Существует проект под названием JLine, который обеспечивает кросс-платформенную поддержку общей обработки ввода в командной строке:

http://jline.sourceforge.net/

Больше библиотеки поддержки, чем структура, хотя.

Ответ 5

Я использовал библиотеку CLI apache commons в прошлом и хорошо работал у меня: http://commons.apache.org/cli/