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