Java CMD进程有时在关闭命令行时打印任意输出
代码的基础是将打开一个Windows CMD终端。关闭时,有时会打印额外的输出。为什么这个额外的行(Java CMD进程有时在关闭命令行时打印任意输出,java,process,cmd,java.util.scanner,Java,Process,Cmd,Java.util.scanner,代码的基础是将打开一个Windows CMD终端。关闭时,有时会打印额外的输出。为什么这个额外的行(输出:U:\Java\Type Test>)只是偶尔打印 以下是代码片段: Process proc = null; String[] cmd = {"cmd", "/k", "start"}; proc = Runtime.getRuntime().exec(cmd); Scanner in = new Scanner(proc.getInputStream()).useDelimiter("
输出: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>
看起来提示是流程输出的一部分。。。
cmd
是否有一个选项可以跳过显示提示符?@fge U:\Java\Type Test>是提示符,但我的问题是为什么它有时只打印提示符?因为打开命令提示符cmd
的第一个命令也是从Java使用环境检测到的命令提示符运行的<代码>运行时.getRuntime().exec()