Von was ich verstehe, Sie fragen, wie Sie FFMPEG tatsächlich starten, als ob Sie die Eingabeaufforderung geöffnet und den Befehl selbst ausgeführt haben.
Wenn dies der Fall ist, hat die Eingabeaufforderung unter Windows einen Befehl zum Starten einer ausführbaren Datei als eigenen Prozess. Treffend 'start' genannt
versuchen dies zu tun:
String[] command = new String[] {"start", "C:\Windows\System32\calc.exe"};
Process p = Runtime.getRuntime().exec(command);
Eine einfache Erklärung, was geschieht anders ist:
Bei der Verwendung von
String[] command = new String[] {"cmd.exe", "/c", "C:\Windows\System32\calc.exe"};
Java wird einen neuen Kind-Prozess von erstellen java.exe selbst, um Ihren Befehl auszuführen, der den Befehl ffmpeg (oder Taschenrechner in diesem Beispiel) in diesem untergeordneten Prozess startet.
Ansonsten
String[] command = new String[] {"start", "C:\Windows\System32\calc.exe"};
mit Will ffmpeg (oder wieder Taschenrechner hier), vollständig in einem eigenen Prozess starten, als ob von explorer.exe gestartet
EDIT:
I don Ich kann das momentan nicht testen, da mein Windows-Computer nicht funktioniert. Es ist möglich, dass Sie möglicherweise den Startbefehl selbst mit cmd.exe Präfix wie folgt:
String[] command = new String[] {"cmd.exe", "/c", "start", "C:\Windows\System32\calc.exe"};
ABER meines Wissens entweder Weg sollte Arbeit.
Edit2: machte Erklärung erklärender.
Mögliche Duplikate von [Lesen Sie die Ausgabe von Java Exec] (http://StackOverflow.com/Questions/8149828/Read-the-Output-From-JavaExec) – noshusan
Danke für einen Link. Ich weiß, dass ich Process Builder verwenden und Ausgabestrom umleiten kann. Mein Ziel ist es, das cmd-Fenster zu öffnen. –
Wird Ihre Java-Anwendung im Benutzerkontext oder als Dienst ausgeführt? –