用于构建Java应用程序的交互式shell的库

ian*_*215 16 java libraries

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

我找到的最好的导致是一个名为Cliche的库,它完全符合我的需要.问题是它太简单了.我正在寻找更具定制性的东西.

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

mik*_*era 9

要考虑的选项:

  • javacurses/JCurses - 一个基于控制台的窗口工具包,类似于UNIX curses设计
  • 如果您想在Swing GUI窗口中使用控制台样式的视图/输出,则swing-console可能是合适的.你可以使用它来构建一个交互式shell.
  • JLine - 类似于GNU readline的控制台输入库
  • 一些JVM语言提供了一个交互式REPL环境,可以用作交互式shell,例如Clojure

  • http://www.beanshell.org/也增加了一个很好的互动环境. (2认同)

bur*_*rna 5

根据这个问题 JLine可以很好地尝试。

JLine的特点

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

  • 根据我阅读的内容,JLine 看起来效果很好。问题是图书馆的文档似乎非常稀缺。也没有那么令人担忧,但我似乎找不到任何使用 JLine 的示例。 (2认同)

小智 5

我们正在使用Spring shell,它对我们来说真的很好。它的一些功能:

  • 一个简单的注释驱动的编程模型,可以贡献自定义命令

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

  • Roo Shell功能的继承,尤其是制表符完成,着色和脚本执行。

  • 自定义命令提示符,标题,shell历史记录文件名。