2012-12-29 22 views
14

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

我发现,最好的导体是叫Cliche库,不正是我需要的。问题是它太简单了。我正在寻找具有更多定制的东西。

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

+0

如果你真的实现定制,你可能想看看半熟。 – fge

回答

4

根据this QuestionJLine可以是一个很好的尝试。

Features of JLine

  • 命令历史记录 - 已预先输入可以回顾和编辑,并且可以持续,使他们可
    整个程序的会话线。
  • 线编辑 - 的JLine允许当前命令行的所有编辑,并尝试尽可能多的GNU的Readline的行为模仿的可能 ,包括两个Emacs和六键映射支持。
  • 完成 - JLine提供可执行命令行选项卡完成的可插入机制(当然,完成可以绑定到您希望的任何键)。
  • 自定义键绑定 - 密钥可以任意重新映射到执行特定操作,并尝试的JLine兑现任何映射是 集现有的readline .inputrc文件的文件。
  • 字符掩蔽 - 输入可以从用户收集而没有任何视觉反馈。这对提示输入密码很有用。
  • 99.99%Java - JLine的绝大部分都是Java,只使用Jansi项目提供的一些本地代码,以支持Windows的
+1

根据我正在阅读的内容,JLine看起来会很好。问题是文档对于图书馆来说似乎非常稀少。也没有太多的担忧,但我似乎无法找到任何JLine使用的例子。 – ianc1215

+0

您可以在源代码中看到示例https://github.com/jline/jline2/blob/master/src/test/java/jline/example/Example.java – burna

+0

他们拥有的示例似乎不起作用。不要给我一个提示,它只是运行和停止。我认为如果我能与开发人员取得联系并获得关于如何使用它的更多信息,Jline将为我工作。他们似乎没有用于JLine2的JavaDoc,但Jline1有一个。谢谢您的帮助。 – ianc1215

9

选项来考虑:

  • javacurses/JCurses - 一个基于控制台的窗口工具包,类似于UNIX的诅咒设计
  • swing-console如果你想有一个控制台风格的查看/输出可能是适当的在一个Swing GUI窗口中。你可以用它来构建一个交互式shell。
  • JLine - 库控制台输入类似于GNU的readline
  • 若干JVM语言提供一个互动REPL environment其可以被用作一个交互式外壳,例如Clojure
+0

我以前在其他语言中使用Curses运行对我来说证明是一个巨大的痛苦。但是为了获得我所需要的功能,我可能不得不将其视为一种选择。 – ianc1215

+2

http://www.beanshell.org/也增加了一个很好的交互式环境。 – 9000

+0

到目前为止,我读到的关于Beanshell的内容看起来像是过度杀伤。它是Java语言的完整脚本。 – ianc1215

3

我们使用的是Spring shell,它对我们非常有用。它的一些特性:

  • 一个简单的,注解驱动的编程模型定制 命令


  • 命令插件策略和命令开发利用策略

  • 使用asthe基础Spring的类路径扫描功能有助于
  • Roo Shell的继承特性,最显着的是制表符完成, 着色和脚本执行。

  • 自定义命令提示符,横幅,外壳历史文件名。