Пояснение:
Вот как это работает; пакетный файл обрабатывается по одной строке за раз. Каждая команда выполняется по очереди, и пакетный процессор ждет окончания одной команды, прежде чем запустить следующую. Проблема, с которой вы сталкиваетесь, заключается в том, что запускаемое вами Java-приложение (Jilko.jar) - это оконная программа, которая продолжает работать даже после запуска строки. Если бы это был инструмент, выполняющий какое-то действие, а затем завершающий его, пакетный файл продолжил бы выполнение следующей команды (или завершился бы, если бы ее больше не было). Поскольку программа все еще выполняется, пакетный процессор ждет, пока окно не закроется, прежде чем двигаться дальше. Это можно увидеть в действии, выйдя из Java-программы: консольное окно с пакетным файлом затем закрывается.
Решение:
Что вам нужно сделать, чтобы исправить это, так это дать указание пакетному процессору запустить программу и продолжить работу, не дожидаясь этого:
start "" "C:\Program Files (x86)\Java\jre6\bin\javaw.exe" -Xmx1024M -Xms1024M -jar Jilko.jar
Как Terrance mentioned , ""
- это название для консольного окна. Однако это необязательно, если команда не заключена в кавычки; в противном случае это required. Вы можете поместить что-нибудь туда, если хотите, или оставить пустым, но если команда находится в кавычках, она должна присутствовать, иначе интерпретатор команд будет трактовать команду в кавычках как заголовок и откроет консоль, которая просто сидит там и ждет, пока что-нибудь сделает.
Вы можете использовать вместо этого что-нибудь из следующей команды, но кавычки просто проще и безопаснее, так как короткие имена не гарантированно будут одинаковыми в каждой системе.
start C:\Progra~2\Java\jre6\bin\javaw.exe -Xmx1024M -Xms1024M -jar Jilko.jar
Команда start
является встроенной командой, которая порождает процесс (в основном, как запуск программы из меню Пуск). Так что в данном контексте происходит то, что пакетный процессор запускает команду start
, которая, в свою очередь, запускает указанную программу и завершает работу (сама по себе, а не порожденную программу). Таким образом, пакетный процессор продолжает работу, как и ожидалось. Он также имеет некоторые опции, которые могут быть полезны, такие как запуск программы минимизированной (/min
) или максимизированной (/max
), запуск с низким приоритетом (/low
) и так далее. Подробности см. в разделе start /?
.