package interview.process;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class ProcessBuilderDemo
{
public static void main(String[] args)
{
// call("javac");
call("cmd.exe /C dir"); // 不支持该方法
}
public static void call(String cmd)
{
// Runtime rt = Runtime.getRuntime();
Process pro = null;
try
{
// pro = rt.exec(cmd);
ProcessBuilder pb = new ProcessBuilder(cmd);
pb.redirectErrorStream(true);
pro = pb.start();
// =============
new StreamTool(pro.getInputStream()).start();
// new StreamTool(pro.getErrorStream()).start();
// ===========
pro.waitFor();
}
catch (InterruptedException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
private static class StreamTool extends Thread
{
BufferedReader br = null;
public StreamTool(InputStream is)
{
br = new BufferedReader(new InputStreamReader(is));
}
public void run()
{
String line = null;
try
{
while ((line = br.readLine()) != null)
{
System.out.println(line);
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}