我正在寻找允许我创建交互式 shell 的 Java 库。我做了一些搜索,并没有出现很多。我发现的大部分是用于向我的应用程序添加命令参数解析的库,这对我没有多大帮助。
我找到的最好的线索是一个名为Cliche的库,它完全符合我的需要。问题是它太简单了。我正在寻找具有更多自定义功能的东西。
有没有人遇到过更高级的东西?
要考虑的选项:
我们正在使用Spring shell,它对我们来说非常有效。它的一些特点:
一个简单的、注释驱动的、用于贡献自定义命令的编程模型
使用 Spring 的类路径扫描功能作为
命令插件策略和命令开发的基础
Roo Shell 功能的继承,最显着的是制表符补全、着色和脚本执行。
自定义命令提示符、横幅、shell 历史文件名。
- 命令历史 - 以前输入的行可以被调用和编辑,并且可以被保留,以便它们
在您的程序的会话中可用。- 行编辑 - JLine 允许对当前命令行进行完全编辑,并尝试尽可能多地模仿 GNU Readline 的行为,包括对 emacs 和 vi 键映射的支持。
- 完成 - JLine 提供了一种可插入的机制来实现命令行选项卡完成(当然完成可以绑定到您希望的任何键)。
- 自定义键绑定 - 可以任意重新映射键以执行特定操作,并且 JLine 尝试遵守在现有 readline .inputrc 文件中设置的任何映射。
- 字符屏蔽 - 可以从用户那里收集输入,而无需任何视觉反馈。这对于提示输入密码很有用。
- 99.99% Java - JLine 的大部分都是 Java,只使用 Jansi 项目提供的一小部分本机代码来
支持 Windows。