2011-06-18 7 views
7

'expect'では、SSHコマンドを実行してこれらのコマンドの出力を解析してプログラムの流れを変更することができます。私はJavaでこれをしたいと思います。つまり、JavaアプリケーションでSSHセッションを開始し、リモートサーバーでコマンドを実行し、新しいSSHセッションを開始することなく、次のコマンドを実行するコマンドの出力に依存するようにします。'期待通り'のようなJavaアプリケーションでのSSH

これはJavaで可能ですか?

おかげ

答えて

3

ExpectJを試してみてください。      

+0

これは興味深いプロジェクトですが、SSHの純粋なJavaを保つために私がここで探しているものではありません。 – jtnire

3

はい、可能です。いくつかのライブラリがありますが、Ganymed SSH-2をお勧めします。あなたはhereをダウンロードすることができますし、機能を使用する例もたくさんあります。

+0

これはよく見えます!しかし、このサイトではコードはもはや維持されていないと言われています。このコードの経験はありますか?それは安定しているのか、それとも少しバグがありますか?例はうまく法案に合っているようです – jtnire

+0

私の経験によれば、それはうまくいくようですが、私は100%確実ではありません... –

6

自己紹介私のプロジェクト:他のJavaベースのExpectライブラリを見て、私は自分自身を書くことにしました...希望あなたはそれが役に立ちます。何か問題が見つかった場合は、GitHubで問題を開いてください。 SSHのために

https://github.com/ronniedong/Expect-for-Java

、私はreadmeファイルの例として、JSCHを使用することをお勧め。

+0

実際、これはエレガントでシンプルで、 'javaに結合されています。 io.InputStream'や 'javax.io.OutputStream'インターフェース(通常JSchやGanymedのようなSSHライブラリから利用できるコンストラクトです)を使用していますが、プロデューサ/コンシューマ向けのシナリオではNIOコンストラクタをインテリジェントに使用しています。 .nio.channels.Pipe'。 Expect4J(すべての依存関係)よりも優れていて、エンチャンター(非保守、同期バグ、正規表現なし)またはExpectJ(正規表現なし)より優れています。ありがとうございました! –

関連する問題