读书人

透过Process调用window命令提示符

发布时间: 2012-08-21 13:00:21 作者: rapoo

通过Process调用window命令提示符

public static void main(String[] args) throws Exception{Process process = Runtime.getRuntime().exec("cmd.exe");InputStream  in   = process.getInputStream();OutputStream out  = process.getOutputStream();Reader reader           = new InputStreamReader(in);BufferedWriter writer   = new BufferedWriter(new OutputStreamWriter(out));BufferedReader readLine = new BufferedReader(new InputStreamReader(System.in));int code;while(true){while((code = reader.read()) != -1){System.out.print((char)code);if(code == 62) {break;}}String cmd = readLine.readLine();if("exit".equals(cmd)){break;}writer.write(cmd+"\n");writer.flush();}reader.close();writer.close();readLine.close();}

偶然看见有人贴出java实现window的命令提示符功能demo,但是出现IO流的阻塞,自己研究了一下发现在java获取cmd的输出流并输出到控制台的时候,cmd等待用户输入命令,java又在等待cmd那边的阻塞完毕然后输出,这样就出现了死结。

读书人网 >编程

热点推荐