Java Development Kit (JDK) — это основной инструмент для разработки на Java. Без него не получится ни полноценно написать код, ни запустить его. Именно в JDK входит всё необходимое: компилятор, среда выполнения, библиотеки классов и разные утилиты.
Разберёмся, что такое JDK, какие у него компоненты, какие есть версии и как всё это установить.
Что такое Java Development Kit
JDK (Java Development Kit) — это набор инструментов, который нужен, чтобы разрабатывать и запускать программы на Java. По сути, это полноценная среда разработки, которая включает в себя:
- Java Runtime Environment (JRE) — минимальный набор для выполнения Java-программ.
- Java Virtual Machine (JVM) — отвечает за выполнение Java-кода на разных платформах без необходимости переписывать его под каждую операционную систему.
- Компилятор (javac) — превращает исходный код Java в байт-код, который исполняется на JVM.
- API и библиотеки — готовые решения для работы с файлами, сетью, базами данных и многим другим.
- Отладчик и вспомогательные инструменты — помогают находить ошибки и анализировать производительность приложений.
Главное преимущество JDK — его многоплатформенность. Благодаря виртуальной машине Java-приложения могут запускаться на Windows, macOS, Linux и других системах без модификации кода. Именно поэтому Java остаётся одним из самых популярных языков в мире, особенно в корпоративной разработке и мобильных приложениях.
Дальше разберём подробно, что входит в JDK и зачем это нужно.
Компоненты JDK
JDK — это не просто одна программа, а целый набор инструментов, которые помогают писать, компилировать, запускать и отлаживать код на Java. Разберём основные части, которые входят в комплект.
Java Runtime Environment (JRE)
JRE — это среда, которая позволяет запускать Java-программы. Она включает в себя виртуальную машину Java (JVM) и базовые библиотеки.
Если JDK нужен программисту для написания и компиляции кода, то JRE нужен обычным пользователям, которые просто хотят запустить Java-программу, не вникая в процесс разработки. Например, если у вас есть готовая Java-игра или приложение в виде скомпилированного файла .class или .jar, для его работы достаточно JRE.
👉 Технически это работает так:
- Вы ставите себе JRE.
- JRE разворачивает виртуальную машину с нужными параметрами, ставит внутри себя библиотеки и создаёт среду, в которой может выполняться java-код.
- Когда вы запускаете в этой среде java-код, ему кажется, что он работает в своём родном окружении, на своём процессоре и всё такое. Но на самом деле всё это матрица — JRE просто создаёт для кода видимость, что всё хорошо, а в жизни виртуальная среда может быть запущена почти на любом железе.
Компилятор
Компилятор — это инструмент, который переводит код с Java на байт-код, понятный JVM. Работает это так:
- Вы пишете код на Java.
- Компилятор превращает его в байт-код (создаёт файл .class).
- JVM запускает этот байт-код на любой операционной системе.
Без компилятора код остаётся просто текстом и не может выполняться. Если в коде есть ошибки, компилятор их найдёт и сообщит об этом. Это помогает программисту исправить баги ещё до запуска программы.

API
API — это набор готовых инструментов (классов, методов и функций), которые можно использовать вместо написания всего с нуля.
Допустим, чтобы не писать вручную код для работы с файлами, можно просто использовать Files.readAllLines(Path)
] из стандартного API. А если нужно вывести дату, можно использовать LocalDate.now()
, а не разбираться с миллисекундами.
API делает код короче, более читаемым и быстрым в разработке — просто вызываем нужную функцию, а не пишем всё руками.
Библиотека классов
Это основная часть API, где хранятся тысячи готовых классов и методов, которые можно использовать в своих программах. Например, ArrayList, HashMap, Scanner — всё это часть стандартной библиотеки. Нужно, чтобы не изобретать велосипеды, а сразу использовать проверенные решения.
Так как в Java почти всё держится на классах, все стандартные операции тоже работают на них. Ввод-вывод, работа с экраном и всё остальное — для этого нужны классы из стандартной библиотеки классов.
Отладчик
Отладчик — это инструмент, который помогает находить ошибки в коде ещё до того, как программа заработает в реальной среде.
Он умеет запускать программу построчно и смотреть, где что-то пошло не так. Отслеживать значения переменных в момент выполнения и останавливать код на нужной строке и проверять, что происходит. Чтобы не гадать, почему код не работает, можно поставить точку останова (breakpoint) и пошагово посмотреть, где именно произошла ошибка.

Ошибка компиляции
Дополнительные инструменты
Помимо основных компонентов, в JDK есть ещё куча полезных утилит:
- jar — упаковка файлов в .jar-архивы (по сути, как zip для Java-программ). Олды помнят jar-игры для старых телефонов с полифонией и монохромными экранами.
- javadoc — генерация документации прямо из комментариев в коде. Это полезно, если нужно создать инструкцию для других разработчиков.
- jconsole — мониторинг работы приложения в реальном времени. Если программа начинает потреблять слишком много памяти, можно увидеть это в jconsole.
- keytool — управление сертификатами безопасности. Если Java-приложение использует шифрование, keytool помогает с ключами.
- jshell — интерактивная консоль, где можно тестировать Java-код без создания целого проекта. Удобно для быстрых экспериментов.
Разновидности JDK
JDK бывает разным, потому что Java используется не только для обычных программ, но и для веб-приложений, мобильных устройств и встраиваемых систем. Разберём основные вариации.
Java SE
Java SE (Standard Edition) — базовая версия JDK, которая используется для написания десктопных и серверных приложений. Она включает в себя всё, что нужно для разработки: виртуальную машину Java (JVM), компилятор, стандартную библиотеку классов и инструменты для отладки. Если только начинаете изучать Java, то начать нужно именно с Java SE.
Эта версия подходит для самых разных задач: от создания небольших программ до разработки сложных корпоративных приложений. Её используют и для серверной части веб-приложений, но для полноценной работы в этой сфере существует расширенная версия — Java EE.
Java EE
Java EE (Enterprise Edition) — расширенный набор инструментов для создания сложных веб-приложений и корпоративных систем. В дополнение к возможностям Java SE сюда добавлены технологии для работы с веб-серверами, базами данных и сетевыми взаимодействиями. В этой версии есть такие штуки, как сервлеты, JSP, JPA (для работы с базами данных) и WebSockets, которые позволяют создавать динамические сайты, CRM-системы, банковское ПО и другие сложные проекты.
Если Java SE — это основа, то Java EE предлагает готовые решения для построения масштабируемых веб-приложений.
👉 Не стоит думать, что если это энтерпрайз, то там и программирование круче, и это прям «настоящий Java». Это всё тот же язык программирования, только в этой среде добавлено больше инструментов для разных корпоративных штук. А так — это тот же Java.
Java ME
Java ME (Micro Edition) — для работы на устройствах с ограниченными ресурсами. В прошлом активно использовался для написания приложений для кнопочных телефонов, но и сегодня применяется в терминалах, банкоматах, автомобильных системах, умных устройствах и промышленном оборудовании.
В отличие от Java SE и Java EE, эта версия оптимизирована для работы на слабых процессорах и при минимальном потреблении памяти. Она содержит упрощённый набор библиотек и инструментов, но при этом остаётся достаточно мощной для решения множества задач.
CDLC и CDC
CDLC (Connected Device Limited Configuration) и CDC (Connected Device Configuration) — это разновидности Java ME, адаптированные для различных встроенных устройств. CDLC рассчитана на самые простые гаджеты — кнопочные телефоны или бытовую технику, а CDC — на более мощные системы вроде смарт-ТВ, автомобильных мультимедийных комплексов и промышленных контроллеров.
Версии JDK и их различия
Хотя Java — это открытая технология, есть разные версии JDK, каждая со своими особенностями. Основных вариантов два: Oracle JDK и OpenJDK. Они выполняют одни и те же функции, но различаются лицензией, поддержкой и некоторыми дополнительными инструментами.
Oracle JDK
Раньше Oracle JDK распространялся бесплатно, но сейчас используется новая модель лицензирования. С версии JDK 17 Oracle предложила NFTC (No-Fee Terms and Conditions) — это означает, что Oracle JDK можно использовать бесплатно, но только в рамках определённых условий. Например, в коммерческих проектах и на долгосрочную перспективу могут потребоваться платные подписки для получения обновлений и технической поддержки.
Основные особенности Oracle JDK:
- Коммерческая поддержка — регулярные обновления безопасности, исправления ошибок и оптимизации от Oracle.
- Дополнительные инструменты — например, расширенные средства мониторинга и диагностики.
- Оптимизированная производительность — Oracle вносит улучшения, которые могут давать прирост в скорости выполнения кода.
- Лицензия — бесплатное использование возможно, но при определённых условиях.
OpenJDK
OpenJDK (Open Java Development Kit) — это открытая версия JDK, которая разрабатывается сообществом и официально поддерживается Oracle. Это полностью бесплатная реализация Java SE, доступная под лицензией GPL (General Public License).
По сути, OpenJDK — это основа, на которой создаются все другие версии JDK, включая Oracle JDK. Oracle использует OpenJDK как базу, добавляет в него дополнительные оптимизации и распространяет как свой коммерческий продукт.
- Полностью бесплатная — можно использовать в любых проектах без ограничений.
- Открытый исходный код — каждый может посмотреть, как она работает, или внести свой вклад в разработку.
- Регулярные обновления — новые версии выходят синхронно с релизами Oracle JDK.
- Поддерживается сообществом — помимо Oracle, участие в разработке принимают Red Hat, Amazon, Azul и другие.
👉 На практике OpenJDK почти ничем не отличается от Oracle JDK.
Как установить JDK
На начало 2025 года актуальные версии JDK такие:
- JDK 23 — самая свежая версия с последними нововведениями.
- JDK 21 — версия с долгосрочной поддержкой (LTS), подходит для стабильных проектов.
Системные требования
JDK 23 работает на современных версиях Windows, macOS и Linux — главное, чтобы система была 64-битной, поскольку 32-битные версии уже не поддерживаются.
- Windows: Windows 10, 11 и серверные версии (2016/2019/2022).
- macOS: версии 12 (Monterey) и новее, включая macOS 15. Работает как на Intel, так и на Apple Silicon (M1/M2/M3).
- Linux: Ubuntu 24.04/24.10, Red Hat Enterprise Linux 7/8/9, Oracle Linux 7/8/9, Suse Linux Enterprise Server 12/15.
По железу требования такие:
- Процессор — 64-битный (x64 или ARM).
- Оперативка — минимум 2 ГБ (лучше 4 ГБ и больше).
- Место на диске — от 500 МБ свободного места.
На современном компьютере или ноутбуке проблем быть не должно. Но если что, можно заглянуть в официальные требования от Oracle и сравнить разные версии. Если нужно писать код под 32-битную архитектуру — качайте старые версии.
Процесс установки
Заходим на сайт Oracle или JDK. Выбираем сборку для своей ОС:

Для установки JDK на Mac нужно выбрать ту сборку, которая соответствует архитектуре процессора:
- Если Mac с чипом Apple (M любой серии) → выбираем macOS/AArch64.
- Если Mac с процессором Intel → выбираем macOS/x64.
Дальше запускаем скачанный установочный пакет и следуем инструкциям установщика.

Для Linux нужно скачать .tar.gz, распаковать и прописать путь к JDK вручную либо установить через пакетный менеджер (apt для Ubuntu, dnf для Fedora).
Для Windows просто качаем установщик, запускаем его и не паримся с менеджерами, версиями и терминалами.
Проверка установки
После установки открываем командную строку и пишем:
java -version
Если программа установилась правильно, увидим сообщение с версией:

Чтобы проверить установку компилятора, вводим команду:
javac -version
Если всё хорошо, также увидим сообщение с версией. Всё готово, можно работать.
Основные пакеты JDK
В Java пакеты (packages) помогают группировать связанные классы, избегать конфликтов имён и делать код более удобным для поддержки. Можно сказать, что пакеты — это как папки в файловой системе, но для кода.
Пакеты в JDK делятся на два типа:
- Встроенные пакеты (built-in packages) — уже готовые библиотеки, которые идут с Java.
- Пользовательские пакеты (user-defined packages) — те, что разработчики создают сами.
Для примера посмотрим несколько встроенных пакетов, которые используются чаще всего.
java.lang — базовые классы (подключаются автоматически). Здесь находятся:
- String — работа со строками;
- Math — математические операции;
- System — ввод/вывод (например, System.out.println() берётся отсюда).
java.util — утилиты и коллекции:
- ArrayList, HashMap — структуры данных;
- Scanner — ввод данных с клавиатуры;
- Random — генерация случайных чисел.
java.io и java.nio — работа с файлами и потоками:
- File, Files — работа с файлами;
- InputStream, OutputStream — работа с потоками данных.
java.net — работа с сетью:
- URL — загрузка данных с сайтов;
- Socket — работа с интернет-соединением.
java.sql — подключение к базам данных:
- Connection — соединение с базой;
- Statement — выполнение SQL-запросов.
javax.swing и java.awt — графический интерфейс:
- JFrame, JButton — окна и кнопки;
- Graphics — рисование в приложениях.
Если нужен класс из другого пакета, его импортируют с помощью import:
import java.util.ArrayList; // Импорт одного класса
import java.util.*; // Импорт всего пакета java.util
Java позволяет группировать собственные классы в пакеты, что удобно для больших проектов. Например, если в начале кода написать package mypack;, то этот класс будет относиться к пакету mypack, а храниться в отдельной папке.
Сторонние комплекты разработки
Помимо Oracle JDK и OpenJDK есть альтернативные сборки, которые предлагают улучшенную производительность, долгосрочную поддержку или оптимизацию под конкретные платформы. Все они основаны на OpenJDK, но могут отличаться лицензией и дополнительными возможностями.
- Axiom JDK — российская доверенная среда разработки и исполнения Java.
- Amazon Corretto — бесплатная версия от Amazon с долгосрочной поддержкой (LTS) и оптимизациями для облака. Подходит для работы в AWS, но можно использовать и вне его.
- Azul Zulu — универсальная сборка с бесплатной и коммерческой версиями. Коммерческий вариант (Zing) предлагает улучшенную производительность и низкие задержки.
- Liberica JDK — сборка от BellSoft с поддержкой JavaFX и оптимизацией для контейнеров (Docker, Kubernetes).
- Eclipse Temurin (бывший AdoptOpenJDK) — полностью открытый и бесплатный JDK, разрабатываемый под эгидой Eclipse Foundation.
- GraalVM — расширенная виртуальная машина, которая поддерживает нативную компиляцию Java-кода и выполнение других языков (JavaScript, Python и других). Подходит для высоконагруженных систем и микросервисов.
Все эти версии совместимы между собой, так что выбор зависит от конкретных задач.
Вам слово
Приходите к нам в соцсети поделиться своим мнением о статье и почитать, что пишут другие. А ещё там выходит дополнительный контент, которого нет на сайте: шпаргалки, опросы и разная дурка. В общем, вот тележка, вот ВК — велком!