之前文章有讲到使用方法Runtime.getRuntime().exec(command)执行操作系统的命令,在很多情况下是没有问题的,但是在某些环境下可能会导致执行的进程假死也就是挂起了,一直停在那里,其根本原因是命令行的输出流在某些情况下没有地方输出,导致命令一直等待输出,下面写个方法把命令的输出流读出来就解决了问题。
@SuppressWarnings("static-access")
public static int doWaitFor(Process process) {
InputStream in = null;
InputStream err = null;
int exitValue = -1; // returned to caller when p is finished
try {
in = process.getInputStream();
err = process.getErrorStream();
boolean finished = false; // Set to true when p is finished
while (!finished) {
try {
while (in.available()