`

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

相关推荐

    C#调用DOS命令方法

    当需要连续执行多个DOS命令时,可以先启动`cmd.exe`,然后通过其标准输入流来发送命令,最后关闭命令提示符。这种方法灵活,可以执行复杂的命令序列: ```csharp using System.Diagnostics; class Program { ...

    win10用命令行打开摄像头.txt

    #### 方法二:通过命令提示符启动摄像头 **步骤1:** 打开命令提示符(CMD)。可以通过在搜索栏中输入“cmd”并选择“以管理员身份运行”来实现,也可以直接通过“运行”对话框输入`cmd`来打开。 **步骤2:** 在...

    bohao.rar_命令行 拨号_宽带

    在Windows操作系统中,我们可以通过命令提示符(CMD)或PowerShell来执行系统命令,包括拨号连接到互联网。这种操作方式特别适合于自动化脚本和无人值守的网络连接。在.NET Framework中,我们可以利用System....

    通过Windows中的命令行提升特权

    1. **命令提示符(CMD)与管理员权限** 在Windows中,使用命令提示符时,可以右键点击图标选择“以管理员身份运行”来提升权限。这使得用户能够执行需要管理员权限的操作,例如修改系统文件或注册表项。 2. **...

    入门学习Linux常用必会60个命令实例详解doc/txt

    例如,用户登录后,按一下“Alt+ F2”键,用户就可以看到上面出现的“login:”提示符,说明用户看到了第二个虚拟控制台。然后只需按“Alt+ F1”键,就可以回到第一个虚拟控制台。一个新安装的Linux系统允许用户使用...

    黑马web 39期 nodejs笔记

    - **验证**: 打开命令提示符 `cmd`,通过运行 `nvm` 命令来验证是否安装成功。 - **常用命令**: - `nvmlist`: 查看已安装的所有 Node.js 版本。 - `nvminstall <版本号>`: 安装指定版本的 Node.js。 - `...

    Android init 启动过程分析

    - **介绍**:Zygote进程的启动由`init`进程负责,通常通过`app_process`命令启动。 - **编译**:Zygote相关的代码主要位于`frameworks/native/cmds/app_process`目录下。 - **流程**:Zygote的启动流程主要包括...

    Linux期末考试试题(精品)_西方经济学期末考试试卷及答案

    - **解析**:`startX` 命令用于启动 X Window 图形界面环境。 **16. 用来分离目录名和文件名的字符是(B)** - **知识点**:Linux文件路径分隔符。 - **解析**:在Linux文件路径中,`/` (slash) 用于分隔目录名和...

    计算机专业英语词汇.pdf

    例如:“Only the active window responds to commands”(只有活动窗口响应命令)。 ***ic: 主题。讨论或写作的中心话题。例如:“The topic of the seminar is machine learning”(研讨会的主题是机器学习)。 ...

Global site tag (gtag.js) - Google Analytics