Как скомпилировать и запустить Java-класс Main.java из командной строки?

«Как скомпилировать и запустить Java-класс Main.java из командной строки?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Запуск Java-программы состоит из двух этапов: компиляции в байт-код и его выполнения виртуальной машиной (JVM).

1. Компиляция:

javac Main.java

Эта команда создаст файл Main.class (и .class-файлы для всех других классов, определённых в Main.java).

2. Запуск:

java Main

Важно: Класс Main должен содержать точку входа — метод main со следующей сигнатурой:

public class Main {
    public static void main(String[] args) {
        System.out.println("Программа запущена!");
    }
}

Работа с зависимостями (classpath): Если ваш класс использует другие библиотеки (.jar файлы) или классы в других папках, укажите путь к ним с помощью флага -cp (или -classpath).

# Запуск с зависимостями в папке 'lib' и текущей директории
java -cp ".;lib/*" Main          # Для Windows
java -cp ".:lib/*" Main          # Для Linux/macOS

Одной командой (компиляция + запуск для одного файла, Java 11+):

java Main.java

Эта команда выполняет класс из исходного файла в памяти, не создавая явно .class-файл.