Акции и промокоды Отзывы о школах

Что такое JDK и как начать с ним работать

#Блог

Если вы хотя бы раз слышали о Java, то наверняка сталкивались с загадочной аббревиатурой JDK.

Что это – очередная непонятная технология или нечто действительно важное для разработчика? Спойлер: без JDK в мире 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.

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

Характеристика JDK JRE JVM
Что это? Комплект инструментов разработчика Среда выполнения 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 JDK OpenJDK
Разработчик 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 разработчика. На них не только расскажут теорию, но и дадут практическую часть. Начните изучать новую профессию уже сегодня!

Читайте также
Категории курсов
';