CMD进程有时在关闭命令行时打印任意输出

时间:2015-12-03 17:36:26

标签: java process cmd java.util.scanner

代码的基础是将打开Windows CMD终端。关闭时,有时会打印额外的输出。为什么有时会打印这个额外的行(Output: U:\Java\Type Test>)?

以下是代码段:

Process proc = null;
String[] cmd = {"cmd", "/k", "start"};
proc = Runtime.getRuntime().exec(cmd);

Scanner in = new Scanner(proc.getInputStream()).useDelimiter("\\A");
BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
OutputStream os = proc.getOutputStream();
InputStream inputStream = proc.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

System.out.println("First:" + proc.isAlive());
String line, foo;
while (proc.isAlive() && in.hasNext()){
    System.out.println("Output: " + in.nextLine());
    proc.destroyForcibly();
}

常用输出:

First:true
Output: 

不寻常的输出:

First:true
Output: 
Output: U:\Java\Type Test>

0 个答案:

没有答案