web-dev-qa-db-ja.com

Javaアプリケーション用のインタラクティブシェルを構築するためのライブラリ

インタラクティブなシェルを作成できるJavaのライブラリを探しています。検索を行ったのですが、あまり見つかりませんでした。見つけたもののほとんどは、コマンド引数の解析をアプリケーションに追加しましたが、あまり役に立ちません。

私が見つけた最高のリードは Cliche というライブラリで、これはまさに私が必要としていることを実行します。問題は単純すぎることです。もっとカスタマイズできるものを探しています。

もう少し進んだものに出くわした人はいますか?

17
ianc1215

考慮すべきオプション:

  • javacurses/JCurses --UNIXのcursesデザインに似た、コンソールベースのウィンドウツールキット
  • swing-console Swing GUIウィンドウでコンソールスタイルのビュー/出力が必要な場合は、適切な場合があります。これを使用して、インタラクティブなシェルを構築できます。
  • JLine -GNU readline
  • いくつかのJVM言語は、インタラクティブなシェルとして使用できるインタラクティブな REPL環境 を提供します。 Clojure
9
mikera

Spring Shell を使用していますが、非常にうまく機能しました。その機能のいくつか:

  • カスタムコマンドを提供するためのシンプルなアノテーション駆動型プログラミングモデル

  • Springのクラスパススキャン機能を基礎として使用する
    コマンドプラグイン戦略とコマンド開発

  • Roo Shell機能の継承、特にタブ補完、色付け、およびスクリプト実行。

  • コマンドプロンプト、バナー、シェル履歴ファイル名のカスタマイズ。

5
Gonzalo

この質問JLine によると良い試みになる可能性があります。

JLineの機能

  • コマンド履歴-以前に入力された行は、呼び出して編集することができ、使用できるように永続化することができます
    プログラムのセッション全体。
  • 行編集-JLineは、現在のコマンドラインの完全な編集を可能にし、emacsとviキーマッピングの両方のサポートを含め、GNU Readlineの動作を可能な限り模倣しようとします。
  • 補完-JLineは、コマンドラインタブ補完を実装するためのプラグ可能なメカニズムを提供します(もちろん、補完は任意のキーにバインドできます)。
  • カスタムキーバインディング-キーは特定のアクションを実行するために任意に再マップでき、JLineは既存のreadline.inputrcファイルに設定されているマッピングを尊重しようとします。
  • 文字マスキング-入力は、視覚的なフィードバックなしでユーザーから収集される場合があります。これは、パスワードの入力を求めるのに役立ちます。
  • 99.99%Java-JLineの大部分はすべてJavaであり、Jansiプロジェクトによって提供されたネイティブコードのほんの一部を使用して、
    Windowsをサポートします。
4
burna