Erläuterung:
So funktioniert es: Eine Batch-Datei wird Zeile für Zeile abgearbeitet. Jeder Befehl wird der Reihe nach ausgeführt und der Batch-Prozessor wartet, bis ein Befehl beendet ist, bevor er den nächsten startet. Das Problem, das Sie haben, liegt daran, dass die Java-Anwendung, die Sie starten (Jilko.jar), ein Fensterprogramm ist, das auch nach der Zeile, die es startet, weiterläuft. Wenn es sich um ein Tool handeln würde, das eine Aktion ausführt und dann beendet wird, würde die Batch-Datei mit dem nächsten Befehl fortfahren (oder sich beenden, wenn es keine weiteren gibt). Da das Programm noch läuft, wartet der Batch-Prozessor, bis das Fenster geschlossen wird, bevor er weitermacht. Sie können dies in Aktion sehen, indem Sie das Java-Programm beenden: Das Konsolenfenster mit der Batch-Datei wird dann geschlossen.
Lösung:
Was Sie tun müssen, um das Problem zu beheben, ist, den Batch-Prozessor anzuweisen, das Programm zu starten und ohne zu warten weiterzumachen:
start "" "C:\Program Files (x86)\Java\jre6\bin\javaw.exe" -Xmx1024M -Xms1024M -jar Jilko.jar
Wie Terrance erwähnte , ist das ""
der zu verwendende Titel für das Konsolenfenster. Es ist jedoch nur optional, wenn der Befehl nicht in Anführungszeichen steht; ansonsten ist es erforderlich. Sie können etwas hineinschreiben, wenn Sie wollen, oder es leer lassen, aber wenn der Befehl in Anführungszeichen steht, muss er vorhanden sein, sonst behandelt der Kommando-Interpreter den in Anführungszeichen stehenden Befehl als Titel und öffnet eine Konsole, die nur dasitzt und darauf wartet, dass etwas passiert.
Sie können stattdessen etwas wie den folgenden Befehl verwenden, aber die Anführungszeichen sind einfach einfacher und sicherer, da die Kurznamen nicht garantiert auf jedem System gleich sind.
start C:\Progra~2\Java\jre6\bin\javaw.exe -Xmx1024M -Xms1024M -jar Jilko.jar
Der Befehl start
ist ein eingebauter Befehl, der einen Prozess erzeugt (im Grunde wie das Ausführen eines Programms aus dem Startmenü). Was in diesem Zusammenhang passiert, ist, dass der Batch-Prozessor den Befehl start
ausführt, der wiederum das angegebene Programm ausführt und beendet (sich selbst, nicht das gespawnte Programm). Der Stapelverarbeitungsprozessor fährt also wie erwartet fort. Er hat auch einige Optionen, die nützlich sein können, wie z. B. das Programm minimiert (/min
) oder maximiert (/max
) auszuführen, es mit niedriger Priorität auszuführen (/low
) und so weiter. Siehe start /?
für Details.