gpt4 book ai didi

java - sshj:如何在命令执行时从长时间运行的命令读取InputStream

转载 作者:行者123 更新时间:2023-12-02 03:15:16 25 4
gpt4 key购买 nike

目前我正在使用 ssh 执行命令:

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

但是,要查看输出,我需要等待直到命令完成。

如何获得“实时”回复?

我想我可以读取输入流直到出现行尾,然后打印该行;但是,库中是否已经有一些方法可以帮助我解决这个问题?

最佳答案

它会阻塞并等待整个事情,因为这就是 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);
}

关于java - sshj:如何在命令执行时从长时间运行的命令读取InputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40403104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com