[英]start a process in a cmd window and get output
我想使用Java在CMD窗口中启动一个过程,而最简单的方法是通过
Runtime.getRuntime().exec("cmd /c start program.exe")
问题在于,现在我无法从流程中获取输入。 我如何从流程中获取输出并能够在单独的CMD窗口中运行它?
您的问题是start
是一个单独的命令,其目的是启动一个与调用start
的cmd
不相关的全新进程。 然后执行的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.