我想用 Java 在 CMD 窗口中启动一个进程,最简单的方法是
Runtime.getRuntime().exec("cmd /c start program.exe")
问题是现在我无法从流程中获取输入。如何从进程中获取输出并能够在单独的 CMD 窗口中运行它?
嘿兄弟,如果你想打印你的进程的输出过程,请使用这个
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书籍,你可以用线程同时运行它。
您的问题是这是一个单独的命令,其目的是启动一个与调用start
无关的全新进程。然后执行的任何内容都不会连接到原始文件,并且无法被您的 Java 程序访问。cmd
start
start
cmd
如果您需要访问子流程的 in/out/err 流,请不要使用start
.