Java执行命令并在其运行时获取输出

时间:2015-08-26 03:09:14

标签: java linux long-running-processes

我正在开发一个执行以下命令的Java程序:clamscan -r /。但是,该命令需要几个小时才能完成。它还提供了数百行输出。

基本上,我想在每行打印时获取输出,而不是等待命令完成。

我查看了其他类似的问题,但在命令完成运行之前不会显示输出。

我正在使用Linux Mint 17。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

假设您拥有display: none(可能来自Runtime.exec或ProcessBuilder.start),您可以使用我制作的这个小帮手。

这有点令人费解,因为我正在使用InputStream来检查数据是否可用,并结合InputReaders来读取字符。这应该很好,即使使用unicode输出。此外,它不需要第二个线程来处理超时,所以它可能并不是那么糟糕。

Process