繁体   English   中英

在cmd窗口中启动进程并获取输出

[英]start a process in a cmd window and get output

我想使用Java在CMD窗口中启动一个过程,而最简单的方法是通过

Runtime.getRuntime().exec("cmd /c start program.exe")

问题在于,现在我无法从流程中获取输入。 我如何从流程中获取输出并能够在单独的CMD窗口中运行它?

您的问题是start是一个单独的命令,其目的是启动一个与调用startcmd不相关的全新进程。 然后执行的start均不连接到原始cmd并且Java程序无法访问该cmd

如果您需要访问子流程的in /​​ out / err流,请不要使用start

嗨,兄弟,如果您想打印过程的输出过程使用此

Process process= Runtime.getRuntime().exec("cmd /c start program.exe");
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));

String line = null;
while ((line = br.readLine()) != null) {
        line = br.readLine();
        System.out.println(line);
}

这样,您将获得与cmd输出完全相同的每个输出过程。

如果您要处理2个cmd,也许可以用不同的exec进行2个处理

Process process1 = Runtime.getRuntime().exec("cmd /c start program1.exe");
Process process2 = Runtime.getRuntime().exec("cmd /c start program2.exe");

如果要在同一线程下运行,请阅读有关线程的Java书籍,您可以与线程同时运行它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM