Входит ли компилятор Java (javac) в состав JDK?

«Входит ли компилятор Java (javac) в состав JDK?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, компилятор javac является ключевым компонентом JDK (Java Development Kit).

Состав JDK:

  1. Компилятор (javac) — преобразует исходный код (.java) в байт-код (.class).
  2. JRE (Java Runtime Environment) — среда для запуска скомпилированных программ (JVM + базовые библиотеки).
  3. Инструменты разработки: jar (упаковка), javadoc (генерация документации), jdb (отладчик), jconsole (мониторинг) и др.
  4. Библиотеки разработчика (например, tools.jar).

Пример использования:

# Компиляция (требуется JDK)
javac MyApplication.java
# Запуск (достаточно JRE, которая входит в JDK)
java MyApplication

Важное отличие:

  • JDK — для разработки (содержит компилятор).
  • JRE — только для запуска программ (компилятора нет).

Начиная с Java 11, Oracle больше не предоставляет отдельные JRE-инсталляторы, поэтому для запуска приложений также может использоваться JDK.