2009-03-05 7 views
1

Jedes Mal, wenn ich Runtime.exec("cmd /c start....") verwende, öffne ich ein cmd-Fenster. Ich möchte eine nahtlosere Anwendung erstellen, indem ich jedes vorherige cmd-Fenster schließe. Wie kann ich das machen?So schließen Sie Befehlsfenster mit Java

Wenn jemand eine bessere Möglichkeit kennt, eine Reihe von Befehlen im selben cmd-Fenster auszuführen, anstatt neue zu öffnen, wenn ich einen Befehl ausführe, lassen Sie es mich wissen.

+0

Warum schließen sich die Fenster nicht? Beginnen Sie so lange laufende Prozesse? –

+0

Ja. Ich öffne ein cmd-Fenster, um ein Skript auszuführen. Und dann muss ich in ein anderes Verzeichnis gehen, das sich in meinem Arbeitsverzeichnis befindet, und eine weitere Reihe von Befehlen ausführen. Das bedeutet, dass ich mehrere cmd Fenster öffne. Ich möchte nacheinander eine Reihe von Befehlen im selben Fenster ausführen. – Amara

Antwort

1

Sie können die geöffneten Fenster nicht von Java aus steuern. Aber ich schlage vor zwei Lösungen für Sie:

Erste:

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

Der/MIN Parameter werden Fenster hindern angezeigt.

Zweite: Legen Sie alle Anwendungen, die Sie aufrufen müssen in der gleichen Batch-Datei und einmal aufrufen. :-)

+0

Minimierung des Fensters wird nicht wirklich los. –

+0

@Shiny Erinnere die Bedeutung von "Vorschlag". –

+0

Die Option zum Einfügen einer Batch-Datei funktioniert möglicherweise besser. Ich habe versucht, die cmd/c ohne Start und meine Befehle werden nicht ausgeführt. Also werde ich die Batch-Datei-Route versuchen. Danke allen! Ich habe viel gelernt :) – Amara

8

nicht Anfang Verwenden Sie, dass öffnet sich ein weiteres Fenster

ersetzen:

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

mit:

Runtime.exec("cmd /c ....") 
+0

Sie sind so richtig. Ich habe nicht einmal bemerkt, dass "start" in der Befehlszeichenfolge, auch wenn ich es formatierte. –

+0

Ich wusste nicht, was bis jetzt angefangen hat;). – Amara

+0

@Amara: Geben Sie in einem cmd-Fenster START /? Für Hilfe zu diesem Befehl. –

2

Warum brauchen Sie cmd Fenster?

Ich würde den Befehl direkt in Java ausführen und die Ausgabe erfassen und in einem lokalen Fenster anzeigen (wenn es überhaupt benötigt wird).

Stellen Sie nur sicher, dass Sie die gesamte Ausgabe des Programms verbrauchen, oder es könnte anhalten. Denken Sie auch daran, die stdout-, stderr- und stdin-Streams zu schließen oder einige Datei-Handles könnten auslaufen (na ja, das trifft auf einige JDKs auf einigen Unix-Betriebssystemen zu ... Windows, wer weiß).

+0

Ich versuche Python-Skripte und Batch-Dateien auszuführen. Ist es möglich direkt in Java zu laufen und wie würde ich anfangen? (Ich denke, ich muss dies als eine Frage stellen?) – Amara

+0

@Amara: Python-Skript-Interpreter ist ein Programm, wie auch cmd.exe. Beide können mit Befehlszeilenargumenten verwendet werden, um ihre relativen Skripts (.py oder .bat-Dateien) auszuführen. Außerdem gibt es Jython zum Ausführen von Python direkt in der VM, wenn Sie interessiert sind. –