20

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

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

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

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

+0

Не помогло бы вам Apache Commons CLI (http://commons.apache.org/cli/)? – sateesh

+3

Нет, Apache Commons CLI действительно предназначен для анализа аргументов командной строки и в действительности не способствует разработке или внедрению пользовательского интерфейса. – Fuu

ответ

6

Возможно CLI Toolkit ...

http://alexis.royer.free.fr/CLI/

+0

Это похоже на приятный подход, безусловно, наиболее актуальный до сих пор. – Fuu

+0

К сожалению, для Windows требуется cgywin. –

3

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

http://jline.sourceforge.net/

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

+0

Действительно, нет никакой реальной основы для встраивания CLI в Java, а jline - самая известная библиотека для такой работы. Я думаю, что он используется, например, для интерпретатора groovy в режиме командной строки. – Riduidel

+0

Глядя на JLine, это поможет в основном путем предоставления автозаполнения для типизированных команд. Полезно, но не соответствует критериям. – Fuu

1

Попробуйте найти проклятий и Java, что-то вроде http://www.google.co.uk/search?q=curses+for+java. Долгое время назад CHARVA (http://www.pitman.co.za/projects/charva/index.html) выглядел красиво.

+2

Интересные ссылки, они используют подход портирования Swing/AWT GUI в текстовый терминал. Проблема в том, что она не уменьшает усилия разработчиков, которые являются целью быстрого интерфейса CLI, так как тогда вы также можете сделать это в Swing и иметь графический интерфейс.:) – Fuu

6

Вы также можете посмотреть и раскладушка или пружинный CLI оболочки:

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

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

Смежные вопросы