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