7

サーバー上でリモートで呼び出される Java コマンドラインを作成する必要があります。次のことを行う必要があります。

  • ユーザーからテキストの「行」を読み取ります。
  • ユーザーが「タブ」キーを押してオートコンプリートを容易にするかどうかを認識します。
  • ユーザーが履歴の「上/下」キーを押したかどうかを認識します。

出発して自分でロールバックする前に、これのすべてまたは一部を容易にする Java ライブラリを知っている人はいますか?

つまり、ssh のコマンド ラインからは次のようになります。

bob> java -jar MyTool.jar

マイツール始めました。
コマンドを入力してください:

> server1 起動
サーバー起動中...
サーバーが起動しました

> server2 負荷アカウント
完了

> server3 シャットダウン
完了

>やめる

4

7 に答える 7

6

JReadlinejline2を確認してください。

于 2012-09-26T06:34:31.030 に答える
1

一度に3つの異なる質問をしようとしていて、本当に何に答えたいのかわからないようです。

  • ユーザー入力を受け入れてオートコンプリートを提供するのは簡単で、そのようなタスク用の一般化されたライブラリが見つかるとはとても思えません。

  • 複雑なbashのようなステートメントを解析することは、何かクールなことのように思えます。それを行うためのライブラリが存在する可能性がありますが、bashのような独自の命令セットを作成するための余裕はあまりないと思います。(特に、bashスクリプトとして実行できるものよりも洗練されている必要があると言っていることを考えると、これは難しい注文です)

  • 単純なユーザー入力をコマンドライン入力またはコマンドであるかのように解析することもかなり簡単です。これが探しているものである場合は、この重複の可能性を確認する必要があります。Javaでコマンドライン引数を解析する方法は?

質問を再構築して、探しているものをより具体的にし、「オートコンプリート」という些細なタスクに重点を置いて、テキストボックスへのユーザー入力を受け入れることを避けることをお勧めします。

于 2012-09-26T06:01:32.287 に答える
1

BeanShellをご覧になりましたか?シェル自体(bashやcshなど)のようには機能しませんが、インタープリターのようにJavaコマンドを入力でき、タブを使用してオートコンプリートできます。

私はBeanシェルの1.Xバージョンのみを使用しましたが、それらは常にウィンドウを開くので、既存のシェル内で実行できるものではありません。

于 2012-09-26T06:02:40.497 に答える
0

Apache Karaf には、他のアプリケーション用のコマンド シェルを構築するためのライブラリとして使用できるコマンド シェルがあります。コマンドを表すクラスを作成し、注釈を使用してコマンドのオプションを指定します。Karaf ライブラリは、タブ補完、履歴と行の編集、および対話的に実行するか、ファイルまたはコマンド ライン引数を読み込んでスクリプトとして実行する機能を提供します。

ここでそれを知り、自分のプロジェクトで使用しました。それは非常にうまく機能します。他は使っていないので比較はできません。

于 2013-12-05T22:54:35.457 に答える
0

このパーティーには少し遅れましたが、クラッシュクリシェをミックスに追加したいと思います.

于 2013-02-05T17:58:29.497 に答える
0

Pythonインタープリターに似たものを意味していると思います。Java に同等のものがない理由は、Java を実行する前にバイトコードにコンパイルする必要があるためです。

優れたオートコンプリート機能を備えたものを探している場合。日食またはネットビーンズをお勧めします。また、アプリケーションを自動的にコンパイルするため、コードの作成が完了したらすぐにコードを実行できます。

それが役立つことを願っています。

于 2012-09-26T06:00:16.687 に答える