我正在编写一个应用程序来帮助自己使用ffmpeg,我让它工作,但cmd.exe在后台运行。 以下是我从java代码中调用它的方法。
String[] command = new String[] {"cmd.exe", "/c", "ffmpeg ...etc"};
System.out.println(command[2]);
Process p = Runtime.getRuntime().exec(command);
我发现的所有信息都是关于在后台运行命令,但我需要完全相反的事情。 我怎么能这样做?
答案 0 :(得分:0)
据我了解, 您正在询问如何实际启动FFMPEG,就像您打开命令提示符一样,并自己执行命令。
如果是这种情况,在Windows上,命令提示符有一个命令,用于启动可执行文件作为其自己的进程。 Aptly命名为' start'
尝试这样做:
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' s(或者这个例子中的计算器)命令。
否则使用
String[] command = new String[] {"start", "C:\Windows\System32\calc.exe"};
将启动ffmpeg(或再次计算器),完全在自己的进程中,就像从explorer.exe启动一样
修改强>
由于我的Windows计算机无法正常运行,我目前无法对此进行测试。 您可能需要使用cmd.exe为start命令本身添加前缀,如下所示:
String[] command = new String[] {"cmd.exe", "/c", "start", "C:\Windows\System32\calc.exe"};
但是据我所知无论应该工作。
Edit2:让解释更具说明性。