2016-05-26 4 views
1

Ich schreibe eine App, um mir zu helfen, ffmpeg zu verwenden, und ich habe es zu arbeiten, aber die cmd.exe läuft im Hintergrund. So nenne ich es aus Java-Code.Cmd.exe von Java-Code aufgerufen läuft im Hintergrund, wie man es als ein Fenster erscheinen lassen?

Alle Informationen, die ich gefunden habe, war über Befehle im Hintergrund ausgeführt, aber ich brauche das Gegenteil. Wie kann ich das tun?

+0

Mögliche Duplikate von [Lesen Sie die Ausgabe von Java Exec] (http://StackOverflow.com/Questions/8149828/Read-the-Output-From-JavaExec) – noshusan

+0

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. –

+0

Wird Ihre Java-Anwendung im Benutzerkontext oder als Dienst ausgeführt? –

Antwort

0

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.

Verwandte Themen