Cómo ejecutar comandos de shell con Java e imprimir la salida directamente mientras ejecuta el comando

ProcessBuilder pb = new ProcessBuilder("ping", "localhost");
pb.inheritIO();
try {
    Process p = pb.start();
    int exitStatus = p.waitFor();
    System.out.println(exitStatus);
}
catch (InterruptedException | IOException x) {
    x.printStackTrace();
}
Friendly Fowl