2011-12-04 6 views

答えて

2

新しいプロセスを開始して、必要なシェルコマンドを実行するだけです。次のようなものがあります。

String[] procArgs = { "ssh", "arguments" }; // set arguments here. 
Process process = Runtime.getRuntime().exec(procArgs); 
+0

良い提案ですが、Javaを実行しているマシンでsshがインストールされていない可能性があります – Zubair

3

2004年にはhttp://www.jcraft.com/jsch/を使用していましたが、うまくいきました。

実行中のプロセスも良い選択ですが、特定のOS(または特定のOSのセット)に縛られます。

sourcesantsshexecタスクをチェックしてください。それらは同じライブラリを使用しています。接続はライブラリによって保持されます。出力ストリームはsetOutputStreamsetExtOutputStreamによって設定されます。

タイムアウトを削除するか、ちょっとだけスマートにして、しばらく新しいデータがない場合にのみ接続を切断してください。

+0

"tail -f"出力から接続を開いたままにしておく方法を教えてください。 – Zubair

+0

コードサンプルの更新された追加リンクを参照してください。 – alf

+0

ありがとうございます。私はソースをチェックし、System.outを使用していることに気付きました。複数の "tail -f"で動作するかどうか知っていますか?私はそれがスレッドセーフであるかどうかを確かめようとしていると思います。 – Zubair

関連する問題