Компиляция и запуск приложения из командной строки
В этой статье мы научимся с вами компилировать и запускать приложения из командной строки. Конечно же, чаще всего приложения разрабатываются и запускаются из специальных средств разработки, например из Intellij IDEA, работу с которой мы рассмотрим в Создание проекта в IntelliJ IDEA. Но для того, чтобы более ясно понимать, как происходит запуск приложения, мы рассмотрим как это делать из командной строки.
1. Компиляция программ
Перед тем как запустить Java приложение, нам нужно его откомпилировать. Для компиляции программ из командной строки (консоли) используется команда javac.
Синтаксис javac:
javac [ключи] [исходники]
Чтобы получить список возможных ключей, выполните:
javac –help
Чтобы скомпилировать программу MyFirstApp
, запустите компилятор, указав имя исходного файла в командной строке следующим образом:
javac MyFirstApp.java
Компилятор javac создаст файл MyFirstApp.class
, содержащий версию байт-кода.
В процессе компиляции исходного кода каждый отдельный класс помещается в собственный выходной файл, называемый по имени класса и получающий расширение .class
.
2. Компиляция с помощью -d.
По умолчанию компилятор записывает сгенерированный .class
в тот же каталог, где находится исходный класс .java
. Это хорошо для маленьких проектов, но при работе на больших проектах файлы .java
и .class
должны храниться отдельно.
Ключ -d позволяет указать компилятору, куда записывать сгенерированные .class
файлы.
Например, у нас есть такая структура папок:
Следующая команда, выполненная из project1 папки сгенерирует файл MyFirstApp.class
и запишет его в папку classes (предполагаем, что MyFirstApp
не содержит оператора package
):
cd project1
javac -d classes src/MyFirstApp.java
Теперь давайте рассмотрим пример компиляции класса com.company.lesson1.MyFirstApp
, находящегося в пакете com.company.lesson1
. Имеется такая структура каталогов:
Следующая команда, выполненная из src каталога, сгенерирует файл MyFirstApp.class
, и запишет его в каталог classes/com/company/lesson1:
cd myProject/src
javac -d ../classes com/company/lesson1/MyFirstApp.java
Если каталог classes/com/company/lesson1 не существует, то он будет создан при компиляции.
Если же не существует каталог classes, то вы получите ошибку компиляции.
3. Запуск программы с помощью команды java.
Чтобы выполнить программу из командной строки, следует воспользоваться загрузчиком приложений Java, который называется java.
Синтаксис java:
java [ключи] класс [аргументы]
Для получения списка возможных ключей, выполните:
java –help
Чтобы выполнить программу, передадим имя класса MyFirstApp
(предполагаем, что MyFirstApp
не содержит оператора package
) в качестве аргумента командной строки:
java MyFirstApp
Если класс MyFirstApp
находится в пакете, то выполняем команду:
java com.company.lesson1.MyFirstApp
Стоит заметить, что при запуске программы указывается только один класс без расширения .class
.
4. Ключевые моменты
- В процессе компиляции исходного кода каждый отдельный класс помещается в собственный выходной файл, называемый по имени класса и получающий расширение
.class
. - По умолчанию компилятор записывает сгенерированный
.class
в тот же каталог, где находится исходный класс.java
. - Ключ
-d
указывает компилятору, куда записывать сгенерированные.class
файлы. - При компиляции могут быть созданы отсутствующие каталоги соответствующие пакету компилируемого класса.
- Если в ключе
-d
указан не существующий каталог, будет выброшена ошибка компиляции. - При запуске программы указывается только один класс без расширения
.class
. -d
может содержать относительные и абсолютные пути.
Презентацию с видео можно скачать на Patreon.
Зарегистрируйтесь или войдите, чтобы иметь возможность оставить комментарий.