Objaśnienie:
Oto jak to działa; plik wsadowy jest przetwarzany po jednej linii na raz. Każde polecenie jest wykonywane po kolei, a procesor wsadowy czeka na zakończenie jednego polecenia przed rozpoczęciem następnego. Problem, którego doświadczasz, jest spowodowany tym, że aplikacja Java, którą uruchamiasz (Jilko.jar), jest programem okienkowym, który kontynuuje działanie nawet po uruchomieniu wiersza, który go uruchamia. Jeśli byłoby to narzędzie, które wykonuje jakąś akcję i kończy pracę, plik wsadowy kontynuowałby do następnego polecenia (lub zakończyłby pracę, jeśli nie ma więcej). Ponieważ program jest nadal uruchomiony, procesor wsadowy czeka, aż okno zostanie zamknięte, zanim przejdzie dalej. Można to zobaczyć w działaniu, kończąc program Java: okno konsoli z plikiem wsadowym zostanie zamknięte.
Rozwiązanie:
To, co musisz zrobić, aby to naprawić, to poinstruować procesor wsadowy, aby uruchomił program i kontynuował bez czekania:
start "" "C:\Program Files (x86)\Java\jre6\bin\javaw.exe" -Xmx1024M -Xms1024M -jar Jilko.jar
Jak Terrance wspomniał , ""
jest tytułem, którego należy użyć dla okna konsoli. Jest on jednak opcjonalny tylko wtedy, gdy polecenie nie jest w cudzysłowie; w przeciwnym razie jest wymagany. Możesz wstawić tam coś, jeśli chcesz, lub pozostawić puste, ale jeśli polecenie jest w cudzysłowie, musi być obecne, w przeciwnym razie interpreter poleceń potraktuje zacytowane polecenie jako tytuł i otworzy konsolę, która po prostu siedzi tam czekając na coś do zrobienia.
Zamiast tego można użyć czegoś w rodzaju poniższego polecenia, ale cudzysłów jest po prostu łatwiejszy i bezpieczniejszy, gdyż nie ma gwarancji, że nazwy skrócone będą takie same w każdym systemie.
start C:\Progra~2\Java\jre6\bin\javaw.exe -Xmx1024M -Xms1024M -jar Jilko.jar
Polecenie start
jest wbudowanym poleceniem, które wywołuje proces (w zasadzie jak uruchamianie programu z menu Start). Tak więc w tym kontekście procesor wsadowy uruchamia polecenie start
, które z kolei uruchamia określony program i kończy pracę (sam, a nie program wywołany). W związku z tym procesor wsadowy kontynuuje pracę zgodnie z oczekiwaniami. Ma też pewne opcje, które mogą być przydatne, takie jak uruchamianie programu zminimalizowanego (/min
) lub zmaksymalizowanego (/max
), uruchamianie go z niskim priorytetem (/low
) i tak dalej. Zobacz start /?
po szczegóły.