gpt4 book ai didi

java - 如何在java中获取命令提示符输出?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:58:20 24 4
gpt4 key购买 nike

如何获取命令提示符的输出,这意味着我已经打开了这样的命令提示符。

Process process = Runtime.getRuntime().exec("cmd /c start cmd.exe /K \"C:\\Editor\\editorTemp.exe\"");

我无法得到这样的cmd输出

BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));

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

那么我怎样才能得到命令提示符输出呢?

最佳答案

这不是 Java 问题。基本上,您所做的是运行 Java(Java 主进程 A)并从中启动另一个进程(Windows CMD B)。这很好,您可以在 Java(A) 中获得此进程 (B) 的输入/输出流。然而,这个进程 (B) 启动了另一个进程(同样是 Windows CMD C),它有自己的标准输入/输出。此进程与进程 A 和 B 没有任何共同点,它使用 Windows 的标准输入/输出流。因此,A 和 C 之间没有任何联系。我不确定,但我认为有一些方法可以使用不同或非标准 IO 运行 Windows CMD。也许这样的事情会奏效:

cmd <tty >tty

但是 Windows 中没有 tty。实际上,您可以按照描述执行此操作 here - Creating a Child Process with Redirected Input and Output但这对常规 CMD 不起作用。

然而,当您从 editorTemp.exe(进程 D)启动自己的进程时,问题变得更加严重。 D 与进程 A 的脱节甚至更多。这一切都是为了什么?什么不直接从 A 启动进程 D 并完全控制 IO 流和进程本身?这里好example怎么做。

关于java - 如何在java中获取命令提示符输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31635379/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com