1

每次使用Runtime.exec("cmd /c start....")时,我都会打开一个 cmd 窗口。我想通过关闭每个以前的 cmd 窗口来创建一个更无缝的应用程序。我怎样才能做到这一点?

如果有人知道在同一个 cmd 窗口中运行一系列命令而不是每次执行命令时都打开新命令的更好方法,请告诉我。

4

3 回答 3

8

不要使用开始,这会打开另一个窗口

代替:

Runtime.exec("cmd /c start....")

和:

Runtime.exec("cmd /c ....")
于 2009-03-05T21:36:24.637 回答
2

为什么需要 cmd windows?

我会直接在 Java 中运行命令并捕获输出并将其显示在本地窗口中(如果需要的话)。

只要确保您使用了程序的所有输出,否则它可能会停止。还要记住关闭 stdout、stderr 和 stdin 流,否则某些文件句柄可能会泄漏(嗯,在某些 Unix 操作系统上的某些 JDK 上确实如此……Windows,谁知道呢)。

于 2009-03-05T21:47:05.550 回答
1

您无法从 Java 控制打开的窗口。但我为您建议两种解决方案:

首先

Runtime.exec("cmd /c start /MIN ...")

/MIN 参数将阻止窗口出现。

第二:将您必须调用的所有应用程序放在同一个批处理文件中并调用一次。:-)

于 2009-03-05T22:11:52.087 回答