2016-11-03 22 views
0

目前我使用執行通過ssh命令讀取的InputStream完了。sshj:</p> <pre><code>val sshCmd = session.exec(command) println(IOUtils.readFully(sshCmd.inputStream).toString()) sshCmd.join() </code></pre> <p>但是,要看到輸出,我需要<em>等待</em>直到命令是:如何從長期運行的命令時正在執行命令

我該如何獲得「實時」響應?

我想我可以讀取輸入流,直到行結束,然後打印行;然而,圖書館裏是否已經有一些方法可以幫助我呢?

回答

1

它阻止並等待整個事情,因爲這就是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); 
} 
相關問題