0

現在、次を使用してssh経由でコマンドを実行しています:

val sshCmd = session.exec(command)
println(IOUtils.readFully(sshCmd.inputStream).toString())
sshCmd.join()

ただし、出力を表示するには、コマンドが終了するまで待つ必要があります。

「ライブ」応答を取得するにはどうすればよいですか?

行の終わりが発生するまで入力ストリームを読み取ってから、行を印刷できると思います。ただし、ライブラリには、これに役立つメソッドが既にありますか?

4

1 に答える 1

2

それが意図されていることであり、完全IOUtils.readFullyに読み取るため、すべてをブロックして待機します。代わりに、行ごとに読むために、次のような簡単なことを行うことができます:

 try (BufferedReader reader = new BufferedReader(new InputStreamReader(sshCmd.inputStream))) {
     String line;
     while ((line = reader.readLine()) != null) {
         System.out.println(line);
     }
 } catch (IOException e) {
     System.out.println(e);
 }
于 2016-11-03T13:49:23.600 に答える