Библиотеки для создания интерактивной оболочки для приложения Java
Я ищу библиотеки для Java, которые позволят мне создать интерактивную оболочку. Я сделал несколько поисков и не нашел много. Большинство из того, что я нашел, это библиотеки для добавления синтаксического анализа аргументов в мое приложение, которое не очень помогает мне.
Лучшим результатом, который я нашел, является библиотека под названием Cliche, которая делает именно то, что мне нужно. Проблема в том, что она слишком проста. Я ищу что-то, у которого больше настроек.
Кто-нибудь сталкивается с чем-то более продвинутым?
Ответы
Ответ 1
Возможные варианты:
- javacurses/JCurses - консольный инструментарий для окон, похожий на дизайн прокладок UNIX.
- swing-console может быть уместным, если вы хотите видеть/выводить консольный стиль в окне Swing GUI. вы можете использовать это для создания интерактивной оболочки.
- JLine - библиотека для ввода в консоль, аналогичная GNU readline
- Несколько языков JVM предлагают интерактивную среду REPL, которая может использоваться как интерактивная оболочка, например. Clojure
Ответ 2
В соответствии с этот вопрос JLine может быть хорошей попыткой.
Особенности JLine
- История команд. Линии, которые были ранее введены, могут быть вызваны и отредактированы и могут сохраняться, чтобы они были доступны. через сеансы вашей программы.
- Редактирование строк - JLine позволяет полностью редактировать текущую командную строку и пытается имитировать как можно большую часть поведения GNU Readline как возможно, включая поддержку как emacs, так и vi-ключей.
- Завершение - JLine предоставляет подключаемый механизм для выполнения выполнения вкладки командной строки (конечно, завершение может быть связано с любой желаемый ключ).
- Пользовательские привязки клавиш. Ключи могут быть произвольно переназначены для выполнения определенного действия, а JLine пытается выполнить любое сопоставление, которое в вашем существующем файле readline.inputrc.
- Символьная маскировка. Вход может быть получен от пользователя без какой-либо визуальной обратной связи. Это полезно для запроса паролей.
- 99.99% Java. Огромная часть JLine - это все Java, используя только небольшой бит собственного кода, предоставленный проектом Jansi, на
поддержка Windows.
Ответ 3
Мы используем Spring shell, и это сработало для нас очень хорошо. Некоторые из его возможностей:
-
Простая, ориентированная на аннотацию, модель программирования для внесения пользовательских
Команды
-
Использование Spring функций сканирования классов в зависимости от базы данных
стратегия плагина команды и развитие команды
-
Наследование функций оболочки Roo, в первую очередь завершение табуляции,
раскраска и script выполнение.
-
Настройка командной строки, баннера, имя файла истории оболочки.