19

我正在寻找允许我创建交互式 shell 的 Java 库。我做了一些搜索,并没有出现很多。我发现的大部分是用于向我的应用程序添加命令参数解析的库,这对我没有多大帮助。

我找到的最好的线索是一个名为Cliche的库,它完全符合我的需要。问题是它太简单了。我正在寻找具有更多自定义功能的东西。

有没有人遇到过更高级的东西?

4

3 回答 3

10

要考虑的选项:

于 2012-12-29T10:14:42.383 回答
7

我们正在使用Spring shell,它对我们来说非常有效。它的一些特点:

  • 一个简单的、注释驱动的、用于贡献自定义命令的编程模型

  • 使用 Spring 的类路径扫描功能作为
    命令插件策略和命令开发的基础

  • Roo Shell 功能的继承,最显着的是制表符补全、着色和脚本执行。

  • 自定义命令提示符、横幅、shell 历史文件名。

于 2014-01-22T19:21:23.250 回答
5

根据这个问题 JLine可以是一个很好的尝试。

JLine的特点

  • 命令历史 - 以前输入的行可以被调用和编辑,并且可以被保留,以便它们
    在您的程序的会话中可用。
  • 行编辑 - JLine 允许对当前命令行进行完全编辑,并尝试尽可能多地模仿 GNU Readline 的行为,包括对 emacs 和 vi 键映射的支持。
  • 完成 - JLine 提供了一种可插入的机制来实现命令行选项卡完成(当然完成可以绑定到您希望的任何键)。
  • 自定义键绑定 - 可以任意重新映射键以执行特定操作,并且 JLine 尝试遵守在现有 readline .inputrc 文件中设置的任何映射。
  • 字符屏蔽 - 可以从用户那里收集输入,而无需任何视觉反馈。这对于提示输入密码很有用。
  • 99.99% Java - JLine 的大部分都是 Java,只使用 Jansi 项目提供的一小部分本机代码来
    支持 Windows。
于 2012-12-29T10:10:41.173 回答