Использование bat/sh файлов
Если Вы просмотрели наши предыдущие уроки, где мы компилируем и запускаем программы из командной строки, Вы должны понять, что лучше где-то эти команды сохранять. Именно для этого существуют специальные bat и sh файлы. Можно создавать файлы с расширением .bat или .sh, которые будут содержать несколько команд. Файлы bat используются для Windows, а shell-скрипты - для Linux и macOS.
В этой статье рассмотрим примеры с файлами bat. Эти файлы можно запускать как из командной строки, так и из проводника Windows. Давайте посмотрим как это делается.
У нас есть проект, в котором находятся src и classes папки. И в корне проекта добавлен также run.bat файл:

Давайте посмотрим на его содержимое:
javac -d classes -cp src src/first/Example1.java
java -cp classes first.Example1 Посмотрите, в этом bat-файле добавлены две команды. Первая команда компилирует файл Example1.java, а вторая команда его запускает.
Теперь давайте запустим bat-файл из командной строки. Для этого нажимаем Windows+R и пишем cmd:

Переходим в нужный нам каталог. И, для того, чтобы запустить наш bat-файл, просто пишем его имя run.bat:

После чего выполняются две команды, указанные в этом файле.
Второй вариант, запуска bat-файла - можно просто нажать на этот файл. В этом случае bat-файл запускается, всё выполняется, но окно сразу же закрывается. Для того чтобы командное окно не закрывался и можно было увидеть результат, после всех команд в bat-файле можно указать команду pause:
javac -d classes -cp src src/first/Example1.java
java -cp classes first.Example1
pause Теперь командное окно не будет сразу же закрываться и после выполнения команд будет выведено сообщение "Для продолжения нажмите любую клавишу". Нажимаете и всё закрывается.
Для Linux и macOS аналогичный скрипт создаётся в файле с расширением .sh. Содержимое почти такое же, но разделитель путей в classpath — двоеточие, а не точка с запятой:
javac -d classes -cp src src/first/Example1.java
java -cp classes first.Example1 Чтобы запустить sh-файл, ему нужно дать право на исполнение командой chmod +x run.sh, а затем запустить как ./run.sh.
С помощью bat-файлов и shell-скриптов Вы можете более комфортно компилировать и запускать ваши программы из командной строки.
Часто задаваемые вопросы
Что такое bat-файл и зачем он нужен?
Bat-файл (с расширением .bat) — это текстовый файл с набором команд для Windows. Вместо того чтобы каждый раз вручную вводить команды компиляции и запуска, их сохраняют в bat-файл и выполняют все сразу одним запуском.
Чем bat-файл отличается от sh-файла?
Это одно и то же по смыслу, но для разных систем: .bat используется в Windows, а .sh (shell-скрипт) — в Linux и macOS. Команды javac и java внутри одинаковые; различается лишь разделитель путей в classpath: точка с запятой в Windows и двоеточие в Linux/macOS.
Почему окно закрывается сразу после запуска bat-файла?
При запуске двойным щелчком окно закрывается, как только команды выполнены, и результат не видно. Чтобы окно осталось открытым, добавьте в конец файла команду pause — тогда появится сообщение «Для продолжения нажмите любую клавишу».
Как запустить bat-файл?
Двумя способами: дважды щёлкнуть по файлу в проводнике Windows, либо открыть командную строку (Windows+R, затем cmd), перейти в нужный каталог и ввести имя файла, например run.bat.
Презентацию с видео можно скачать на Patreon.
Видео объяснение
Предпочитаете видеоформат? Посмотрите этот урок с примерами и объяснениями.
Комментарии