java在使用Runtime获取Process输入流阻塞问题
问题描述:
Process ps= Runtime().getRuntime().exec(command);返回Process 需要手动处理getInputStream()和getErrorStream(),两者都需要处理,要是不处理的话,会造成进程阻塞,
处理方法1:
启动两个线程将这两个Stream 处理调用
处理方法2:
Process ps= new ProcessBuilder(command).redirectErrorStream(true).start();
设置redirectErrorStream为true,将两个流合二为一,用getInputStream接收stdin和stderr;
亲测两种方式都有效。