`

通过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那边的阻塞完毕然后输出,这样就出现了死结。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics