Как скомпилировать и запустить Java-приложение из командной строки

JavaBeginner
Практиковаться сейчас

Введение

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

Введение в программирование на Java

Java - это популярный и широко используемый язык программирования, впервые выпущенный компанией Sun Microsystems в 1995 году. Это объектно-ориентированный, основанный на классах язык, разработанный с учетом независимости от платформы, то есть программы на Java могут запускаться на различных операционных системах, включая Windows, macOS и Linux.

Одной из ключевых особенностей Java является ее философия "написать один раз, запустить везде" (write once, run anywhere - WORA), которая означает, что программы на Java могут быть скомпилированы в байт-код, независимый от платформы, который может выполняться на любой Java-виртуальной машине (Java Virtual Machine - JVM). Это делает Java высоко переносимым и универсальным языком, так как разработчики могут написать код один раз и развернуть его на нескольких платформах, не переписывая и не перекомпилируя код.

Java используется в широком спектре приложений, от настольных и веб-приложений до мобильных приложений и корпоративного программного обеспечения. Она особенно популярна в сообществе разработчиков корпоративного программного обеспечения, где используется для создания крупномасштабных, жизненно важных приложений.

Для начала программирования на Java вам нужно установить Java Development Kit (JDK) на своей системе. JDK включает в себя Java-компилятор, который используется для преобразования исходного кода Java в байт-код, а также Java Runtime Environment (JRE), который используется для выполнения программ на Java.

После установки JDK вы можете начать писать и компилировать код на Java с помощью текстового редактора или интегрированной среды разработки (Integrated Development Environment - IDE), такой как Eclipse или IntelliJ IDEA.

graph TD A[Java Development Kit (JDK)] --> B[Java Compiler] A --> C[Java Runtime Environment (JRE)] B --> D[Java Bytecode] D --> C[Java Runtime Environment (JRE)] C --> E[Java Application]

В следующем разделе мы рассмотрим, как компилировать исходный код Java с помощью командной строки.

Компиляция исходного кода Java

Для компиляции исходного кода Java можно использовать Java-компилятор, который входит в состав Java Development Kit (JDK). Java-компилятор представляет собой инструмент командной строки, который преобразует исходный код Java в байт-код, который затем может быть выполнен Java Runtime Environment (JRE).

Компиляция одного Java-файла

Для компиляции одного Java-файла можно использовать команду javac, за которой следует имя Java-файла. Например, чтобы скомпилировать файл с именем HelloWorld.java, нужно выполнить следующую команду в терминале:

javac HelloWorld.java

В результате этого в той же директории, где находится исходный файл, будет создан скомпилированный класс-файл с именем HelloWorld.class.

Компиляция нескольких Java-файлов

Если ваше Java-приложение состоит из нескольких исходных файлов, вы можете скомпилировать их все сразу, перечислив имена файлов после команды javac. Например:

javac HelloWorld.java AnotherClass.java MyClass.java

В результате этого будут скомпилированы все три Java-файла и созданы соответствующие класс-файлы.

Компиляция Java-файлов в поддиректориях

Если ваши исходные файлы Java организованы в структуру директорий, вы все равно можете скомпилировать их, используя команду javac. Например, если у вас есть файл с именем com/example/MyClass.java в поддиректории, вы можете скомпилировать его с помощью следующей команды:

javac com/example/MyClass.java

В результате этого в директории com/example будет создан файл MyClass.class.

graph TD A[Java Source File] --> B[Java Compiler (javac)] B --> C[Java Bytecode (.class)]

В следующем разделе мы рассмотрим, как запускать Java-приложения из командной строки.

Запуск Java-приложений

После компиляции исходного кода Java в байт-код вы можете запустить Java-приложение, используя команду java. Команда java используется для запуска Java-виртуальной машины (Java Virtual Machine - JVM) и выполнения скомпилированного байт-кода Java.

Запуск одного Java-класса

Для запуска одного Java-класса можно использовать команду java, за которой следует полное имя класса (включая имя пакета, если оно есть). Например, чтобы запустить класс с именем HelloWorld в пакете по умолчанию, вы должны использовать следующую команду:

java HelloWorld

Если класс HelloWorld находится в пакете с именем com.example, вы должны использовать следующую команду:

java com.example.HelloWorld

Запуск Java-приложения с аргументами командной строки

Вы также можете передавать аргументы командной строки в ваше Java-приложение, указав их после имени класса. Например:

java HelloWorld John Doe

Внутри вашего Java-кода вы можете получить доступ к этим аргументам командной строки, используя параметр args метода main().

public static void main(String[] args) {
    System.out.println("Hello, " + args[0] + " " + args[1] + "!");
}

Запуск Java-приложений из JAR-файлов

Если ваше Java-приложение упаковано в JAR (Java Archive) - файл, вы можете запустить его, используя команду java и указав JAR-файл. Например:

java -jar myapp.jar

В результате этого будет запущена JVM и выполнен основной класс, указанный в манифесте JAR-файла.

graph TD A[Java Bytecode (.class)] --> B[Java Virtual Machine (JVM)] B --> C[Java Application]

Следуя этим шагам, вы можете успешно компилировать и запускать Java-приложения из командной строки, независимо от сложности вашего проекта или способа организации исходных файлов.

Заключение

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