2011-01-07 5 views

Antwort

2

Sie sollten start /MIN in Ihren Argumenten nicht verwenden müssen. Hast du das versucht?

rt.exec(new String[]{"cmd.exe","/C","build.bat"}); 
+0

Ich habe das versucht. Der Build wird nicht mit dieser Option ausgeführt. –

+0

Huh, interessant. Wenn das der Fall ist, vermute ich, dass es etwas mit deiner Bat-Datei ist. 'START' erzeugt im Wesentlichen einen neuen cmd.exe-Prozess (der nicht beendet wird) und'/C' beendet den erstellten. Sie könnten versuchen, eine Protokollierung zur Batch-Datei hinzuzufügen und zu sehen, wie weit es noch geht. –

1

am Ende der bat-Datei exit hinzufügen, auch keine Notwendigkeit cmd vor hinzuzufügen, den Sie direkt Schlägern Batch (.bat) ausführen können

+0

Ich habe versucht, am Ende der Bat-Datei den Exit hinzuzufügen. Keine Hilfe.Wie rufe ich die bat-Datei auf, ohne die Option 'cmd' zu verwenden? –

+0

nur direkt 'rt.exec (new String [] {" C: \\ Pfad \\ build.bat "});' –

+0

@JigarJoshi Meine Batch-Datei schließt nicht Eingabeaufforderung Fenster, wenn Java-Anwendung Exception wirft. Ich habe Am Ende wurde der Ausgang hinzugefügt. – happy

-1

gerade aktualisiert mit einer neuen Linie Datei und den neuen in eingeben Linie: exit.

+0

Bereits vorgeschlagen. Lesen Sie die vorherigen Antworten und Kommentare vor dem Posten. – Avik

1
writer.write("expdp greenbuds/greenbuds directory=backup dumpfile="+dd+".dump logfile="+dd+".log"); 
writer.newLine(); 
writer.write("Exit"); 
+0

Willkommen bei Stack Overflow! Würden Sie darüber nachdenken, etwas zu erzählen, um zu erklären, warum dieser Code funktioniert und was macht ihn zu einer Antwort auf die Frage? Dies wäre sehr hilfreich für die Person, die die Frage stellt, und für alle anderen, die mitkommen. –

0

Dies ist ein fix I found on StackOverflow, für eine Eingabeaufforderung zu schließen, nachdem ein Programm mit einer Batch-Datei ausgeführt wird.

statt: start "einige Programmpfad"

dies tun: start "" "einige Programmpfad"

Works für mich unter Windows XP.

1

Ich bin gerade erst hier in SO aus, so upvote konnte nicht Antwort des @Franci Penov als richtig:

rt.exec(new String[]{"cmd.exe","/C","build.bat"}); 

oder einfach,

rt.exec("cmd.exe /C build.bat"); 

sollte nicht eine Eingabeaufforderung öffnen. build.bat wird kopflos ausgeführt.


Angenommen, Sie eine Eingabeaufforderung bringen wollen, während build.bat läuft (so können Sie die Ausgabe direkt von der Eingabeaufforderung sehen, anstatt sie später zu verarbeiten), und will, dass die Eingabeaufforderung weg zu gehen, nachdem build.bat Ausführung beendet hat, können Sie die folgende verwenden:

rt.exec("cmd.exe /C start cmd.exe /C batch.bat"); 

die start startet einen (sichtbaren) Eingabeaufforderungsfenster, um die Ausgabe von cmd.exe /C batch.bat zu verarbeiten und anzuzeigen. Wenn Sie eine pause am Ende Ihrer batch.bat haben, dann alles, was Sie tun müssen, ist einen Schlüssel zu drücken, und die Eingabeaufforderung wird weggehen, ohne 10 im Eingabeaufforderungsfenster eingeben müssen, um es zu schließen.

Dies ist vielleicht nicht das, was Sie brauchen, aber ich habe auf SO gesucht, aber dann selbst die Lösung gefunden. Nur um es zu teilen.

+1

Vielen Dank !! Nach 20 geöffneten Tabs und Stunden ist der zweite Teil Ihrer Antwort die Lösung, die ich brauchte !! Ich danke dir sehr!! – Hamsterrific

Verwandte Themen