Что такое JDK (Java Development Kit)

Разбираем инструмент разработки для Java

Что такое JDK (Java Development Kit)

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. Работает это так:

  1. Вы пишете код на Java.
  2. Компилятор превращает его в байт-код (создаёт файл .class).
  3. JVM запускает этот байт-код на любой операционной системе.

Без компилятора код остаётся просто текстом и не может выполняться. Если в коде есть ошибки, компилятор их найдёт и сообщит об этом. Это помогает программисту исправить баги ещё до запуска программы.

Что такое JDK (Java Development Kit)

API

API — это набор готовых инструментов (классов, методов и функций), которые можно использовать вместо написания всего с нуля.

Допустим, чтобы не писать вручную код для работы с файлами, можно просто использовать Files.readAllLines(Path)] из стандартного API. А если нужно вывести дату, можно использовать LocalDate.now(), а не разбираться с миллисекундами.

API делает код короче, более читаемым и быстрым в разработке — просто вызываем нужную функцию, а не пишем всё руками.

Библиотека классов

Это основная часть API, где хранятся тысячи готовых классов и методов, которые можно использовать в своих программах. Например, ArrayList, HashMap, Scanner — всё это часть стандартной библиотеки. Нужно, чтобы не изобретать велосипеды, а сразу использовать проверенные решения.

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

Отладчик

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

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

Что такое JDK (Java Development Kit)

Ошибка компиляции

Дополнительные инструменты

Помимо основных компонентов, в 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 (Java Development Kit)

Для установки JDK на Mac нужно выбрать ту сборку, которая соответствует архитектуре процессора:

  • Если Mac с чипом Apple (M любой серии) → выбираем macOS/AArch64.
  • Если Mac с процессором Intel → выбираем macOS/x64.

Дальше запускаем скачанный установочный пакет и следуем инструкциям установщика.

Что такое JDK (Java Development Kit)

Для Linux нужно скачать .tar.gz, распаковать и прописать путь к JDK вручную либо установить через пакетный менеджер (apt для Ubuntu, dnf для Fedora).

Для Windows просто качаем установщик, запускаем его и не паримся с менеджерами, версиями и терминалами. 

Проверка установки

После установки открываем командную строку и пишем:

java -version

Если программа установилась правильно, увидим сообщение с версией:

Что такое JDK (Java Development Kit)

Чтобы проверить установку компилятора, вводим команду:

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 и других). Подходит для высоконагруженных систем и микросервисов.

Все эти версии совместимы между собой, так что выбор зависит от конкретных задач.

Вам слово

Приходите к нам в соцсети поделиться своим мнением о статье и почитать, что пишут другие. А ещё там выходит дополнительный контент, которого нет на сайте: шпаргалки, опросы и разная дурка. В общем, вот тележка, вот ВК — велком!

Обложка:

Алексей Сухов

Корректор:

Елена Грицун

Вёрстка:

Мария Климентьева

Соцсети:

Юлия Зубарева

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Вам может быть интересно
easy