2012-12-29 105 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的繼承特性,最顯着的是製表符完成, 着色和腳本執行。

  • 自定義命令提示符,橫幅,外殼歷史文件名。