Компиляция и запуск приложения из командной строки

В этой статье мы научимся с вами компилировать и запускать приложения из командной строки. Конечно же, чаще всего приложения разрабатываются и запускаются из специальных средств разработки, например из Intellij IDEA, работу с которой мы рассмотрим в Создание проекта в IntelliJ IDEA. Но для того, чтобы более ясно понимать, как происходит запуск приложения, мы рассмотрим как это делать из командной строки.

  1. Компиляция программ
  2. Компиляция с помощью -d
  3. Запуск программы с помощью команды java
  4. Ключевые моменты

1. Компиляция программ

Перед тем как запустить Java приложение, нам нужно его откомпилировать. Для компиляции программ из командной строки (консоли) используется команда javac.

Синтаксис javac

javac [ключи] [исходники]

Чтобы получить список возможных ключей, выполните:

javac –help

Чтобы скомпилировать программу MyFirstApp, запустите компилятор, указав имя исходного файла в командной строке следующим образом:

javac MyFirstApp.java

Компилятор javac создаст файл MyFirstApp.class, содержащий версию байт-кода. 

В процессе компиляции исходного кода каждый отдельный класс помещается в собственный выходной файл, называемый по имени класса и получающий расширение .class

2. Компиляция с помощью -d.

По умолчанию компилятор записывает сгенерированный .class в тот же каталог, где находится исходный класс .java. Это хорошо для маленьких проектов, но при работе на больших проектах файлы .java и .class должны храниться отдельно.

Ключ -d позволяет указать компилятору, куда записывать сгенерированные .class файлы.

Например, у нас есть такая структура папок:

Структура папок Java приложенияСледующая команда, выполненная из project1 папки сгенерирует файл MyFirstApp.class и запишет его в папку classes (предполагаем, что MyFirstApp не содержит оператора package):

cd project1
javac -d classes src/MyFirstApp.java

Теперь давайте рассмотрим пример компиляции класса com.company.lesson1.MyFirstApp, находящегося в пакете com.company.lesson1. Имеется такая структура каталогов:

Структура папок Java приложения с пакетами

Следующая команда, выполненная из 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. Ключевые моменты

  1. В процессе компиляции исходного кода каждый отдельный класс помещается в собственный выходной файл, называемый по имени класса и получающий расширение .class.
  2. По умолчанию компилятор записывает сгенерированный .class в тот же каталог, где находится исходный класс .java.
  3. Ключ -d указывает компилятору, куда записывать сгенерированные .class файлы.
  4. При компиляции могут быть созданы отсутствующие каталоги соответствующие пакету компилируемого класса.
  5. Если в ключе -d указан не существующий каталог, будет выброшена ошибка компиляции.
  6. При запуске программы указывается только один класс без расширения .class.
  7. -d может содержать относительные и абсолютные пути.

Презентацию с видео можно скачать на Patreon.

Читайте также:
Trustpilot
Trustpilot
Комментарии