关于进程的异步提问
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
public class PowshcmdExe {
public static int exeShell(String path) {
int exitValue = 1;
String message = "";
String cmdLine = "cmd /c powershell " + path;
try {
Process process = Runtime.getRuntime().exec(cmdLine);
process.getOutputStream().close();
System.out.println("Hello!");
int waitFor = process.waitFor();
InputStream is = process.getErrorStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null) {
message += line;
}
message += " Process waitFor=" + waitFor;
exitValue = process.exitValue();
message += " Process exitValue=" + exitValue;
process.destroy();
}
catch (Exception e) {
message = e.getMessage();
e.printStackTrace();
}
return exitValue;
}
}
以上代码中红色部分,是执行一个cmd命令。
现在的需求是:
执行这个cmd命令可能需要很长时间,我可以让这个cmd命令一直执行,但依旧往下跑自己的程序吗?
即cmd命令在执行中,依旧能打印Hello