java ProcessBuilder在前台运行进程
<>我想运行C++中的一个可执行文件,并在前台看到与它相关的CMD提示,因为可执行文件在CMD中打印了一些行。p>我已经编写了以下代码,但是所有进程都是在后台创建和运行的(在这段代码中,我打开了伪cmd.exe进程,而不是我的进程)
Process p = new ProcessBuilder("C:\\Windows\\System32\\cmd.exe").start();
如何启用进程的前台运行
谢谢
你可以在下面搜索框中键入要查询的问题!
我已经编写了以下代码,但是所有进程都是在后台创建和运行的(在这段代码中,我打开了伪cmd.exe进程,而不是我的进程)
Process p = new ProcessBuilder("C:\\Windows\\System32\\cmd.exe").start();
如何启用进程的前台运行
谢谢
# 1 楼答案
Vivin Paliath的答案真的很好,然后你可以对输出做任何你想做的事情,在你自己的对话中显示它,记录它,解释它,检查错误等等
但以防万一,你真的希望命令窗口出现。执行cmd。获取进程“
OutputStream
”,并向其写入命令(application.exe),以新行结尾大致如下:
无论如何,通常也应该耗尽输入流
# 2 楼答案
问题不在于进程是在前台还是后台。当您使用Java启动一个流程时,您必须使用Java来控制该流程的生命周期。JavaAPI为您提供了对流程的各种属性的访问。这里您感兴趣的是过程的输出。它由进程“
InputStream
表示。这似乎违反直觉,但它是有意义的,因为从Java程序的角度来看,进程的输出是程序的输入。相反,如果需要向进程发送数据,则向进程“OutputStream
写入数据总之,访问进程“
InputStream
”,并将其打印到命令行:当然,这段代码假设您的进程没有等待任何输入,即它不是交互式的