gpt4 book ai didi

java - java代码调用的cmd.exe在后台运行,如何使其显示为窗口?

转载 作者:太空宇宙 更新时间:2023-11-04 12:34:29 25 4
gpt4 key购买 nike

我正在编写一个应用程序来帮助自己使用 ffmpeg,并且我让它可以工作,但是 cmd.exe 在后台运行。这是我从 java 代码中调用它的方法。

String[] command = new String[] {"cmd.exe", "/c",  "ffmpeg ...etc"};
System.out.println(command[2]);
Process p = Runtime.getRuntime().exec(command);

我发现的所有信息都是关于在后台运行命令的,但我需要完全相反的东西。我怎样才能做到这一点?

最佳答案

据我了解,您询问如何实际启动 FFMPEG,就好像您打开命令提示符并自己执行命令一样。

如果是这种情况,在 Windows 上,命令提示符有一个用于将可执行文件作为其自己的进程启动的命令。恰本地命名为“开始”

尝试这样做:

String[] command = new String[] {"start", "C:\Windows\System32\calc.exe"};
Process p = Runtime.getRuntime().exec(command);

对发生的不同情况的简单解释是:

使用时

  String[] command = new String[] {"cmd.exe", "/c", "C:\Windows\System32\calc.exe"};

Java 将创建 java.exe 本身的一个新子进程来执行您的命令,从而在该子进程中启动 ffmpeg(或本例中的计算器)命令。

否则使用

  String[] command = new String[] {"start", "C:\Windows\System32\calc.exe"};

将启动 ffmpeg(或此处再次使用计算器),完全在其自己的进程中,就像从 explorer.exe 启动一样

编辑:

我目前无法对此进行测试,因为我的 Windows 计算机无法正常工作。您可能需要在启动命令本身前面加上 cmd.exe 前缀,如下所示:

  String[] command = new String[] {"cmd.exe", "/c", "start", "C:\Windows\System32\calc.exe"};

但是据我所知无论哪种方式都应该有效

编辑2:使解释更具解释性。

关于java - java代码调用的cmd.exe在后台运行,如何使其显示为窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37468241/

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