KursHub — каталог онлайн-курсов
Акции и промокодыОтзывы о школах

JDK — что это, как работает и зачем нужен разработчику на Java

#Блог

JDK — это базовый инструмент, без которого невозможно работать с Java. Он объединяет всё, что нужно для написания, компиляции и запуска программ — от компилятора и виртуальной машины до библиотек классов и утилит для отладки. В этом курсе вы узнаете, что такое JDK, как он устроен, чем отличается от JRE и JVM, и как правильно установить его на вашу операционную систему.

Мы подробно разберём, как настроить переменные окружения, выбрать между Oracle JDK и OpenJDK, подключить среду разработки и сделать первые шаги в Java-кодинге.

Что это и зачем он нужен

JDK (Java Development Kit) — это не просто набор инструментов для Java-разработчика, а целый экосистемный комплекс, без которого ваша амбициозная карьера Java-программиста закончится, не успев начаться. Представьте себе, что вы купили сверхсложную модель конструктора, но вам не дали инструкцию и отвертку — примерно такая же ситуация возникает, когда вы пытаетесь писать на Java без JDK.

В теории, конечно, написать Java-код можно даже в Блокноте (хотя это примерно так же удобно, как писать роман на салфетках) — текст он и есть текст. Но вот превратить эти строчки кода в работающую программу без JDK невозможно в принципе. Java Development Kit — это тот самый волшебный мост между "я написал код" и "оно работает".

Что же входит в этот загадочный набор? JDK включает в себя компилятор (javac), который превращает человекочитаемый код в байт-код, понятный машине; среду выполнения (JRE); виртуальную машину Java (JVM), которая является сердцем всей экосистемы; библиотеки классов для решения типичных задач; отладчики и множество других утилит, которые делают жизнь разработчика если не праздником, то хотя бы не кошмаром.

Скриншот официальной страницы загрузки Oracle JDK с выделенной кнопкой «Download» и списком доступных версий.

Oracle JDK
Скриншот официальной страницы загрузки Oracle JDK с выделенной кнопкой «Download» и списком доступных версий.

Из чего состоит Java Development Kit

JRE (Java Runtime Environment)

JRE — это такая технологическая матрёшка внутри JDK, которая содержит всё необходимое для запуска Java-приложений. Если Development Kit — это набор инструментов для разработчика, то JRE — набор инструментов для приложения. Говоря проще (что в мире Java случается нечасто), JRE — это то, что нужно установить обычному пользователю, который хочет просто запустить Java-программу, а не писать её.

В состав JRE входят:

  • Библиотеки классов (тонны уже готового кода).
  • Загрузчик классов (тот, кто подтаскивает нужные классы, когда они понадобятся).
  • Виртуальная машина Java (о ней чуть ниже).

JVM (Java Virtual Machine)

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

JVM работает как переводчик между вашей программой и операционной системой — благодаря ей код, написанный на Windows, спокойно запустится на Linux или macOS. Правда, как с любым переводчиком, иногда случаются "трудности перевода", но это уже детали.

Компилятор (javac)

Компилятор в JDK — это утилита javac, которая превращает ваш исходный код (.java файлы) в байт-код (.class файлы). Если провести аналогию с кухней, то вы создаёте рецепт блюда (пишете код), а компилятор превращает его в набор инструкций для повара (байт-код). Только вместо повара тут JVM, и она не такая терпеливая — если в рецепте ошибка, блюдо не приготовится.

схема jdk
Последовательность: .java → javac → .class → JVM → ОС/железо.

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

Библиотеки классов — это огромные коллекции уже написанного кода, который вы можете использовать. Это как пойти в IKEA за готовой мебелью, вместо того чтобы самостоятельно пилить доски (хотя некоторые упрямцы всё равно предпочитают второй вариант).

Java API — это по сути интерфейсы для взаимодействия с этими библиотеками. Они включают:

  • Коллекции (списки, множества, карты).
  • Утилиты для работы со строками.
  • Инструменты для работы с датами и временем.
  • Сетевые библиотеки.
  • И еще тысячи других полезных инструментов.

Отладчик, архиватор, генератор документации и прочие утилиты

В Development Kit встроено множество дополнительных инструментов, которые делают жизнь разработчика менее мучительной:

  • Отладчик jdb — позволяет пошагово выполнять код и находить ошибки (и удивляться, почему код работает не так, как вы думали).
  • Архиватор jar — упаковывает классы в .jar файлы (что-то вроде ZIP для Java).
  • javadoc — генерирует документацию на основе комментариев (да, кто-то действительно пишет комментарии к коду).
  • jps — показывает запущенные Java-процессы.
  • jstat— мониторит производительность JVM.
  • jconsole — графический инструмент для мониторинга JVM.
  • jvisualvm — анализатор производительности и памяти.

И это лишь малая часть того арсенала, который предоставляет JDK. Учитывая всё это многообразие, удивительно, что хватает места на диске для установки других программ!

Разница между JDK, JRE и JVM

Если вы всё ещё не запутались в этом супе из аббревиатур — позвольте мне это исправить. JDK, JRE и JVM — это три кита, на которых держится мир Java, и понимание разницы между ними — ключ к просветлению (или хотя бы к прохождению собеседования на Java-разработчика).

разница между JDK, JRE, и JVM.
Вложенные компоненты: JDK содержит JRE, а JRE — JVM.

Чтобы не превращать этот раздел в мучительное чтение, давайте взглянем на таблицу сравнения:

ХарактеристикаJDKJREJVM
Что это?Комплект инструментов разработчикаСреда выполнения JavaВиртуальная машина Java
Для кого?Для разработчиковДля пользователейДля кода (да, у вашего кода тоже есть потребности)
Что делает?Позволяет создавать, компилировать и запускать Java-приложенияПозволяет запускать Java-приложенияИсполняет байт-код
СодержитJRE + компилятор + отладчик + другие инструментыJVM + библиотеки классовНичего, она сама внутри JRE
Можно ли использовать отдельно?Да, это самостоятельный пакетДа, если вам нужно только запускать программыНет, она часть JRE

В некотором смысле эти три компонента — как матрёшка: Development Kit содержит JRE, которая в свою очередь содержит JVM. Или, если хотите другую аналогию, JDK — это целая кухня с техникой и ингредиентами, JRE — это плита с кастрюлями, а JVM — это огонь, на котором всё готовится.

Главное отличие в повседневном использовании: если вы просто хотите запускать Java-приложения, вам достаточно установить JRE. Но если вы собираетесь писать код, отлаживать его и компилировать — нужен полный JDK. И помните: без JVM ничего работать не будет, но отдельно её не устанавливают — она приходит вместе с JRE.

Часто начинающие разработчики путаются и устанавливают только JRE, а потом удивляются, почему командная строка не узнаёт загадочную команду javac. Секрет прост: компилятор живёт только в JDK, и без него ваш код останется просто текстом — пусть и очень умным, но бесполезным с точки зрения компьютера.

Виды: SE, EE и другие

Если вы думали, что с JDK всё просто, то позвольте мне развеять ваши иллюзии. У Development Kit есть несколько разновидностей, как у хорошего коньяка — только вместо звёздочек используются буквенные обозначения. И выбор правильной версии — это как выбор костюма: зависит от того, куда вы собираетесь и что планируете делать.

Java SE (Standard Edition)

Java SE — это тот самый "стандартный" JDK, с которого начинают все неофиты в мире Java. Это как базовая комплектация автомобиля — всё необходимое для езды есть, но без кожаного салона и подогрева сидений.

SE включает в себя:

  • Основные библиотеки классов.
  • Базовые API для работы с GUI, сетью, безопасностью.
  • Коллекции, утилиты и прочие инструменты.

Когда использовать: для десктопных приложений, консольных утилит, простых программ, обучения языку и всего, что не требует серверных или мобильных компонентов. Если вы начинающий Java-разработчик или просто хотите понять, почему Java до сих пор популярна несмотря на JavaScript и Python — SE ваш выбор.

Java EE (Enterprise Edition)

Java EE — это увеличенная версия SE, напичканная корпоративными возможностями. Как если бы к вашему легковому автомобилю добавили прицеп, лебёдку и возможность перевозить контейнеры. EE предназначена для создания серьёзных (и часто невероятно сложных) серверных приложений.

В состав EE входят:

  • Все компоненты SE (ничего не пропадает).
  • Сервлеты для создания веб-приложений.
  • Enterprise JavaBeans для бизнес-логики.
  • Инструменты для работы с веб-сервисами.
  • API для работы с JSON, электронной почтой и прочими корпоративными радостями.

Когда использовать: для создания корпоративных приложений, веб-сервисов, многоуровневых систем и всего, что должно работать на сервере и обслуживать множество клиентов. Если в вашем проекте есть слова "масштабируемость", "отказоустойчивость" и "корпоративная инфраструктура" — вам сюда.

Java ME (Micro Edition)

Java ME — это облегчённая версия SE, созданная для устройств с ограниченными ресурсами. Это как если бы из вашего автомобиля убрали всё, кроме двигателя, руля и одного сиденья. ME разделяется на две конфигурации:

  • CDC (Connected Device Configuration) — для устройств с большими возможностями, таких как смартфоны.
  • CLDC (Connected Limited Device Configuration) — для совсем простых устройств с минимальными ресурсами.

Когда использовать: для разработки под мобильные телефоны (особенно старые), встраиваемые системы и устройства IoT. Впрочем, в эпоху Android и iOS чистая Java ME используется всё реже.

В современном мире разработчики чаще всего используют SE или EE, а ME встречается в основном в специфических нишах. И помните: выбор правильной версии JDK — это как выбор правильного инструмента для работы — молотком можно забить гвоздь, но нарезать хлеб им не получится (хотя некоторые упрямо пытаются).

Oracle JDK vs OpenJDK: какую версию выбрать

Как будто трёх видов Development Kit недостаточно, нам ещё предстоит выбор между Oracle JDK и OpenJDK. Это как выбирать между фирменным и дженериковым лекарством — формула одна, но нюансы и цена различаются. И да, исторически так сложилось, что у нас есть две версии одного продукта — благодарите за это корпоративные игры Oracle.

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

АспектOracle JDKOpenJDK
РазработчикOracle (ранее Sun Microsystems)Oracle + сообщество (Red Hat, IBM, Apple и др.)
ЛицензияКоммерческая (с ограничениями для бизнеса)Открытая (GPL с исключением для связывания)
Исходный кодЧастично закрытыйПолностью открытый
Коммерческое использованиеПлатное для компаний (после определённого периода)Бесплатное
Дополнительные инструментыFlight Recorder, Mission ControlМеньше проприетарных инструментов
СтабильностьТеоретически выше из-за более строгого тестированияЗависит от сборки, но обычно не хуже
ПоддержкаКоммерческая (платная)Силами сообщества (бесплатная)
Выпуск обновленийПо графику OracleПо мере готовности

Звучит сложно? На самом деле всё просто: Oracle JDK и OpenJDK технически очень похожи, но отличаются лицензией и бизнес-моделью. После того как Oracle изменила лицензионную политику в 2019 году, многие компании перешли на OpenJDK, чтобы избежать лицензионных платежей.

Как установить на Windows, macOS и Linux

Установка может показаться тривиальной задачей (скачать-установить-готово), но на практике это иногда превращается в квест с настройкой переменных окружения и прочими радостями жизни Java-разработчика. Давайте разберемся, как это сделать на разных платформах, не сломав компьютер и психику.

Установка на Windows

Windows — самая распространенная ОС для разработки, и процесс установки Development Kit здесь прямолинеен, но с подводными камнями:

  1. Загрузка дистрибутива. Посетите официальный сайт Oracle или выберите OpenJDK-сборку (например, AdoptOpenJDK). Скачайте .exe или .msi файл для Windows.
Oracle
Главная страница Oracle
  1. Установка. Запустите скачанный файл и следуйте инструкциям мастера установки. Обычно дефолтные настройки вполне подходят, если вы не хотите размещать Development Kit в какой-то специфической директории.
  2. Настройка переменных среды (и вот тут начинается веселье):
  1. Нажмите Win + X и выберите "Система".
  2. Кликните на "Дополнительные параметры системы".
  3. Нажмите кнопку "Переменные среды".
  4. В разделе "Системные переменные" создайте новую переменную JAVA_HOME со значением пути к папке с JDK (например, C:\Program Files\Java\jdk-17)
  5. Найдите переменную PATH, нажмите "Изменить" и добавьте %JAVA_HOME%\bin
  6. Нажмите OK везде, где только можно.

Проверка установки. Откройте командную строку и введите:

java -version

javac -version

Если команды показывают версию — поздравляю, вы прошли квест! Если нет — вернитесь к шагу 3 и проверьте пути.

Установка на macOS

Процесс на macOS немного отличается:

  1. Загрузка дистрибутива. Скачайте .dmg или .pkg файл с Development Kit для macOS с официального сайта или выберите OpenJDK-сборку.
  2. Установка. Откройте скачанный файл и следуйте инструкциям мастера установки. На macOS JDK обычно устанавливается в /Library/Java/JavaVirtualMachines/.
  3. Настройка переменных окружения. Откройте терминал и отредактируйте файл профиля:
nano ~/.bash_profile

Добавьте следующие строки:

export JAVA_HOME=$(/usr/libexec/java_home)

export PATH=$JAVA_HOME/bin:$PATH

Нажмите Ctrl+O для сохранения, затем Ctrl+X для выхода. Затем:

source ~/.bash_profile

Проверка установки (так же как и на Windows):

java -version

javac -version

Установка на Linux / Ubuntu

Linux-пользователи, вам немного проще (иногда):

  1. Через репозиторий (самый простой способ):
sudo apt update

sudo apt install openjdk-17-jdk

Заменить 17 на нужную версию.

Ручная установка:

  1. Скачайте tar.gz архив с JDK
  2. Распакуйте его: sudo tar -xvzf jdk-17_linux-x64_bin.tar.gz -C /opt/
  3. Настройте переменные среды в файле /etc/profile или ~/.bashrc:
export JAVA_HOME=/opt/jdk-17

export PATH=$JAVA_HOME/bin:$PATH

Примените изменения: source ~/.bashrc или перезагрузитесь

Проверка установки (как обычно):

java -version

javac -version

Независимо от вашей ОС, если всё прошло успешно — поздравляю! Вы только что преодолели первый барьер на пути к Java-программированию. А если не получилось с первой попытки — не отчаивайтесь, даже опытные разработчики иногда ломают переменные среды и тратят часы на отладку, почему команда java вдруг перестала работать.

Как начать работать с Development Kit: настройка среды разработки

Итак, вы героически установили JDK, и теперь компьютер хотя бы теоретически понимает, что такое Java. Но писать код в блокноте и компилировать через командную строку — это как готовить суп на костре: романтично, но непрактично. Нужна нормальная интегрированная среда разработки (IDE) — кухня с плитой, духовкой и всеми прибамбасами.

Ручная настройка

Перед тем как мы перейдем к IDE, убедимся, что JDK правильно настроен в системе. Иначе даже самая продвинутая среда разработки будет бесполезна, как подводная лодка в пустыне.

Проверка переменных среды

На всех платформах должны работать следующие команды:

echo %JAVA_HOME%  // Windows

echo $JAVA_HOME   // macOS/Linux

Если вы видите путь к JDK — всё хорошо. Если нет — вернитесь к предыдущему разделу.

Что такое JAVA_HOME и PATH и почему это важно:

JAVA_HOME — это переменная, которая указывает, где живет Development Kit. Без неё многие программы (включая большинство IDE) не смогут найти Java.

PATH — это список директорий, в которых система ищет исполняемые файлы. Добавив туда путь к JDK/bin, вы позволяете системе находить команды java, javac и другие без указания полного пути.

Если эти переменные не настроены или настроены неправильно, вас ждут загадочные ошибки типа "команда не найдена" и "JAVA_HOME is not set" — довольно популярные в сообществе, судя по количеству вопросов на Stack Overflow.

Выбор и настройка IDE

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

IntelliJ IDEA

IntelliJ IDEA
Главная страница IntelliJ IDEA

Плюсы:

  • Умнейшая автодополнение и рефакторингu.
  • Интуитивный интерфейс (после привыкания).
  • Огромное количество плагинов.
  • Поддержка всех современных фреймворков.

Минусы:

  • Полная версия платная (хотя Community Edition бесплатна и отлично подходит для начала).
  • Требует довольно много оперативной памяти.
  • Некоторых раздражает "навязчивая умность" IDE.

Установка:

  1. Скачайте с официального сайта.
  2. Установите, следуя инструкциям.
  3. При первом запуске укажите путь к JDK (если IDE его не найдет автоматически).

Eclipse

Eclipse
Главная страница Eclipse

Плюсы:

  • Полностью бесплатный.
  • Лёгкая расширяемость через плагины.
  • Хорошо подходит для крупных проектов.
  • Большое сообщество.

Минусы:

  • Интерфейс менее интуитивный (субъективно).
  • Иногда бывает медленнее IDEA.
  • Настройка рабочего пространства может быть непростой для новичков.

Установка:

  1. Скачайте с официального сайта.
  2. Выберите Eclipse IDE for Java Developers.
  3. Установите и при необходимости укажите JDK.

NetBeans

NetBeans
Главная страница NetBeans

Плюсы:

  • Бесплатный и с открытым исходным кодом.
  • Проще в освоении для новичков.
  • Хорошая поддержка JavaFX и веб-разработки.

Минусы:

  • Может быть медленнее других IDE.
  • Меньше продвинутых функций рефакторинга.
  • Иногда бывает нестабильным.

Установка:

  1. Скачайте с официального сайта.
  2. Установите и при необходимости укажите JDK.

Лично я предпочитаю IntelliJ IDEA — да, она требует некоторого времени на освоение и ресурсов компьютера, но окупается удобством и скоростью разработки. Впрочем, это как с редакторами текста — кто-то клянется Vim'ом, кто-то не мыслит жизни без Emacs, и убедить друг друга они никогда не смогут.

После установки IDE проверьте, что она видит ваш Development Kit, создайте тестовый проект с классическим "Hello, World!" и убедитесь, что всё компилируется и запускается. Если получилось — поздравляю, вы готовы писать на Java и не сходить с ума от командной строки!

Советы новичкам: с чего начать изучение Java

Итак, JDK установлен, IDE настроена, и теперь перед вами открывается бескрайний океан Java-разработки. Куда плыть? Как не утонуть в синтаксисе, фреймворках и паттернах проектирования? Позвольте дать несколько советов, которые я собрал за годы барахтания в этом океане (и выцарапал когтями на спасательном круге).

  1. Начните с основ, а не с фреймворков. Понимание Core Java важнее, чем знание Spring или Hibernate. Это как учиться готовить — сначала освойте нож и сковородку, а потом уже переходите к молекулярной кухне.
  2. Практикуйтесь ежедневно. Как говорят в тренажерных залах: "Мышцы растут в дни отдыха, но только если до этого была тренировка". Так и мозг — он усваивает информацию лучше, если вы регулярно кодите, даже если это 20-30 минут в день.
  3. Читайте чужой код. GitHub — отличный ресурс для этого. Изучая, как пишут другие (особенно профессионалы), вы быстрее нахватаетесь хороших практик.
  4. Пишите тесты. Даже простые unit-тесты помогут вам лучше понять, как работает ваш код, и сохранят немало нервных клеток при рефакторинге.
  5. Не бойтесь ошибок. Каждая ошибка компиляции или исключение в рантайме — это урок. Как говорится, чем больше ошибок вы сделаете в начале, тем меньше их будет потом (на самом деле нет, просто они станут более изощрёнными).
  6. Не пытайтесь выучить всё сразу. Java-экосистема огромна, и никто не знает её всю. Сосредоточьтесь на том, что нужно для ваших конкретных задач, остальное подтянется по мере необходимости.
  7. Используйте ресурсы сообщества:

И помните: разработка — это марафон, а не спринт. Никто не становится экспертом за неделю или месяц, но каждый день практики приближает вас к этой цели. И да, иногда вы будете смотреть на свой код недельной давности и думать: "Что за чудовище это написало?" — это нормально и означает, что вы растёте как разработчик.

Заключение

  • В мире Java JDK — это не просто инструмент, а фундамент, на котором строится вся разработка. Без него вы не сможете ни компилировать, ни запускать Java-программы, ни даже нормально их отлаживать. Это как электричество в современном мире — вы его не замечаете, пока оно есть, но когда его нет, ничего не работает.
  • JDK — основа Java-разработки: без набора инструментов (компилятор, отладчики, утилиты) невозможно превратить код в работающее приложение.
  • Три уровня «матрёшки»: JDK включает JRE, а JRE — JVM, которая исполняет байт-код на любой платформе.
  • Выбор сборки: для простых проектов достаточно Java SE, для корпоративных — Java EE, а для встраиваемых устройств — Java ME.
  • Oracle JDK vs OpenJDK: технически схожи, но отличаются лицензией и дополнительными инструментами; OpenJDK — бесплатный и открытый.
  • Простой путь к старту: скачайте подходящую сборку, настройте JAVA_HOME и PATH, проверьте java -version и javac -version.
  • IDE ускоряет работу: IntelliJ IDEA, Eclipse или NetBeans значительно упрощают написание, компиляцию и отладку кода.
  • Практика и ресурсы: ежедневно кодьте, изучайте чужие проекты, пишите тесты и используйте официальную документацию и сообщества (Stack Overflow, Хабр и др.).

Если хотите “вкатиться в айти”, то изучите курсы Java разработчика. На них не только расскажут теорию, но и дадут практическую часть. Начните изучать новую профессию уже сегодня!

Читайте также
Координатор цифрового внедрения в малом бизнесе: кто связывает руководителей, подрядчиков и IT-команду

Координатор цифрового внедрения в малом бизнесе: кто связывает руководителей, подрядчиков и IT-команду

Координатор цифрового внедрения помогает превратить купленные CRM, 1С и другие сервисы в работающий контур. Разбираемся, за что он отвечает, как оценивает результат проекта и какие навыки нужны для входа в профессию.
Специалист по юнит-экономике для онлайн-бизнеса: какие курсы помогают считать прибыль, а не оборот

Специалист по юнит-экономике для онлайн-бизнеса: какие курсы помогают считать прибыль, а не оборот

Курсы по юнит-экономике обещают научить считать прибыль, но какие программы действительно дают нужные навыки? Разбираемся, что должно входить в обучение, какие инструменты потребуются и как собрать первый проект для портфолио.
Специалист по локальному digital-маркетингу: кто продвигает клиники, салоны и сервисы в картах и поиске

Специалист по локальному digital-маркетингу: кто продвигает клиники, салоны и сервисы в картах и поиске

Специалист по локальному digital-маркетингу отвечает за то, увидят ли клинику, салон или сервис в картах и дойдет ли пользователь до записи. Какие задачи входят в эту работу, что нужно уметь новичку и как собрать первый кейс? Разбираем профессию на практических примерах.
Java-разработчик
Академия Эдюсон
132 отзыва
от 11 158 ₽
Профессия Java-разработчик + ИИ
от 5 625 ₽
Java-разработчик с нуля
Нетология
47 отзывов
от 3 694 ₽
Java-разработка
Moscow Digital Academy
66 отзывов
от 5 530 ₽
Подробнее
IT-специалист с нуля
Академия Эдюсон
132 отзыва
от 10 208 ₽
Скопировать
Категории курсов