构建一个交互的shell为Java应用程序库[关闭](Libraries for construct

2019-08-05 00:32发布

我找库的Java,让我创造一个互动的外壳。 我身边有做了一些搜索,并没有打开了一大堆。 大部分我所发现的是添加命令参数解析到我的应用程序,它并不能帮助我很多库。

我发现,最好的导体是所谓的图书馆陈词滥调这不正是我需要的。 问题是它过于简单了。 我要寻找的东西,有更多的定制。

有没有人碰到一些更先进?

Answer 1:

选项考虑:

  • javacurses / JCurses -一个基于控制台的窗口工具包,类似于UNIX的诅咒设计
  • 摆动控制台如果你想在一个Swing GUI窗口控制台风格的查看/输出可能是适当的。 你可以使用它来建立一个交互的shell。
  • 的JLine -库类似于GNU的readline控制台输入
  • 几个JVM语言提供一个交互式的REPL环境可以用来作为一个交互式的外壳,如Clojure的


Answer 2:

根据本课题 的JLine可以是一个很好的尝试。

的JLine的特点

  • 命令历史记录 - 已预先输入可以回顾和编辑,并且可以持续,使他们可用线
    在你的计划的会议。
  • 在线编辑 - 的JLine允许当前命令行的所有编辑,并试图模仿尽可能多的GNU的Readline的行为成为可能,包括两个Emacs和六键映射支持。
  • 完成 - 的JLine提供了实现的命令行选项卡完成(课程完成后可以绑定到你希望的任何键)一个可插拔的机制。
  • 自定义键绑定 - 密钥可以任意重新映射到执行特定操作,并尝试的JLine兑现了在现有的readline .inputrc文件文件中设置的任何映射。
  • 字符屏蔽 - 输入可以从用户收集没有任何视觉反馈。 这是提示输入密码有用。
  • 99.99%的Java - 的JLine的广大部分是所有Java,只使用本地代码一些小点点,由Jansi项目提供给
    支持Windows。


Answer 3:

我们使用的弹簧外壳 ,和它的工作真的很适合我们。 它的一些特性:

  • 一个简单的,注解驱动的编程模型有助于自定义命令

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

  • 的小豆壳特征,最显着的标签完成,着色和脚本执行继承。

  • 命令提示符,横幅,外壳历史文件名称的定制。



文章来源: Libraries for constructing an interactive shell for Java application [closed]