这不是Java问题。基本上,您正在执行的是Java(Java Main Process A),然后从中启动另一个进程(Windows CMD
B)。很好,您可以在Java(A)中获得此过程(B)的输入/输出流。但是,此过程(B)使用其自己的标准输入/输出启动另一个过程(再次是Windows CMD
C)。该过程与过程A&B没有什么共通之处,并使用Windows的标准输入/输出流。因此,A和C之间没有连接。我不确定,但我认为有一些方法可以使用不同的或非标准的IO运行Windows
CMD。也许这样的事情会起作用:
cmd <tty >tty
但是Windows中没有tty。实用上,您可以按照此处的说明进行操作-
创建具有重定向的输入和输出的子进程,但不适用于常规CMD。
但是,当您从editorTemp.exe(进程D)启动自己的进程时,问题变得更加棘手。D与进程A的连接甚至更多。所有的目的是什么?您不直接从A直接启动进程D并完全控制IO流和进程本身又是什么呢?这是一个很好的例子。



