Java Development Kit: как связаны JDK, JVM, javac и java
💻 Информатика · 8 класс
Минимальный путь от Hello.java до запуска программы и проверка выбранной версии.

Что входит в задачу разработчика
JDK — комплект средств для разработки Java-программ. В нём есть компилятор javac, средство запуска java и другие инструменты, например jar и javadoc. JVM — виртуальная машина, исполняющая код в поддерживаемом формате. JDK и JVM нельзя считать двумя названиями одного инструмента.
Термин JRE обычно относится к среде выполнения без полного набора средств разработки; способ её поставки зависит от производителя и версии. Для учебного пути с самостоятельной компиляцией нужен именно подходящий JDK, а не только редактор текста или возможность запускать чужие программы.
Проверка установки
В терминале выполните java -version и javac -version. Первая команда проверяет запускаемый runtime, вторая — компилятор. Если java найдена, а javac нет, это ещё не доказывает исправность комплекта разработки. Команды могут разрешаться в разные установки через PATH.
Сравните версии и пути инструментов. Не изменяйте системные настройки вслепую: сначала выясните, какую установку использует терминал и какую — среда разработки. Требуемую версию выбирают по условиям проекта; этот урок не объявляет конкретный выпуск «самым новым».
Полный минимальный пример
Сохраните файл Hello.java в отдельной учебной папке:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, Java!");
}
}В терминале перейдите в эту папку. Для привычного двухэтапного процесса выполните:
javac Hello.java
java HelloПервая команда создаёт байт-код в Hello.class, если компиляция успешна. Вторая запускает класс по имени без расширения .class. Ожидаемый вывод — Hello, Java!. Современный запуск некоторых исходных файлов одной командой java существует отдельно, но не отменяет различия компилятора и запуска.
Разобранная ошибка
Ученик сохранил исходник как Hello.txt, затем запустил javac Hello.java. Компилятор не находит названный файл. Это проблема имени и расширения, а не доказательство неправильного синтаксиса main. Если public-класс называется Hello, в обычном файловом процессе исходник нужно назвать Hello.java; проверьте скрытые расширения.
Задания
- Какая команда обычно переводит .java в .class?
- Почему успешный java -version не гарантирует наличия javac?
- Как запустить уже скомпилированный Hello: java Hello или java Hello.class?
Ответы
1. javac. 2. Найдено средство выполнения, но компилятор может отсутствовать в установке или не находиться через PATH. 3. java Hello с учётом расположения класса и classpath; .class не добавляется к имени.
Частая ошибка
Не смешивайте ошибку компиляции, отсутствие файла и ошибку запуска. Читайте первое содержательное сообщение инструмента и проверяйте соответствующий этап. IDE помогает организовать эти действия, но не заменяет понимание, какой JDK реально выбран для проекта.