Компиляция и запуск приложения из командной строки
В этой статье мы научимся с вами компилировать и запускать приложения из командной строки. Конечно же, чаще всего приложения разрабатываются и запускаются из специальных средств разработки, например из Intellij IDEA, работу с которой мы рассмотрим в Создание проекта в IntelliJ IDEA. Но для того, чтобы более ясно понимать, как происходит запуск приложения, мы рассмотрим как это делать из командной строки.
1. Синтаксис компиляции и запуска из командной строки
Перед тем как запустить Java приложение, нам нужно его откомпилировать. Для компиляции программ из командной строки (консоли) используется команда javac.
Синтаксис javac:
javac [ключи] [исходники]
Например, чтобы скомпилировать программу MyFirstApp
, которую мы рассмотрели в прошлом уроке Создание первого приложения, запустите компилятор, указав имя исходного файла в командной строке следующим образом:
javac MyFirstApp.java
В этом примере ключи отсутствуют - сначала давайте попробуем откомпилировать без ключей, а потом рассмотрим какие они бывают.
В процессе компиляции исходного кода, каждый отдельный класс помещается в собственный выходной файл, называемый по имени класса и получающий расширение class.
После того как файл откомпилировался, мы сможем его запустить. Запускается наша программа с помощью команды java.
Синтаксис java:
java [ключи] класс [аргументы]
Например:
java MyFirstApp
После запуска программы, на консоль выведется:
"Hello world!!!"
2. Компиляция и запуск программы, состоящей из нескольких файлов
Давайте рассмотрим пример программы, которая состоит из нескольких файлов:
public class MyFirstApp {
public static void main(String[] args) {
Helper.print();
}
}
public class Helper {
public static void print() {
System.out.print("Hello world!!!");
}
}
При компиляции файла MyFirstApp.java, компилятор обнаружит файл Helper, и откомпилирует и его. После чего мы как и в прошлом примере запускаем программу с помощью следующей команды:
java MyFirstApp
Стоит заметить, что при запуске программы указывается только один класс без расширения .class
.
3. Компиляция с помощью -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, то вы получите ошибку компиляции.
4. Запуск программ с помощью Java лаунчер
В Java 11 была добавлена возможность компилировать и запускать программу состоящую из одного файла одной командой java.
Вместо вызова двух команд:
javac MyFirstApp.java
java MyFirstApp
используем только одну:
java MyFirstApp.java
Файл .class не создается, откомпилированная версия хранится в рабочей памяти и запускается из нее.
В Java 22 возможность компилировать и запускать программу одной командой java была расширена - теперь лаунчер java может запускать программы, состоящие из нескольких исходных файлов Java.
Когда может применяться такой способ запуска приложения:
- Для обучения. Если Вы только начинаете изучать Java, такой способ запуска может существенно облегчить начальный запуск программ.
-
Если не планируется создание проекта
- Для экспериментов
Презентацию с видео можно скачать на Patreon.
Курс 'Java для начинающих' на Udemy
Зарегистрируйтесь или войдите, чтобы иметь возможность оставить комментарий.