W3docs

Как установить Java (JDK) на Windows, macOS и Linux

Пошаговые инструкции по загрузке и установке Java Development Kit (JDK) на Windows, macOS и Linux с проверкой установки.

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

В этой главе рассматриваются: выбор дистрибутива, установка на каждой из основных операционных систем, проверка корректности установки и настройка JAVA_HOME.

JDK, JRE и JVM

Эти три аббревиатуры вводят в заблуждение почти каждого новичка, поэтому стоит разобраться с ними до начала установки:

  • JVM (Java Virtual Machine) — движок, который непосредственно запускает скомпилированную программу. Он загружает байткод и выполняет его на любом доступном оборудовании.
  • JRE (Java Runtime Environment) — JVM плюс стандартная библиотека классов. Достаточно для запуска Java-программ, но не для их компиляции.
  • JDK (Java Development Kit) — JRE плюс инструменты разработчика: компилятор javac, REPL jshell, javadoc и другие.

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

Информация
В «Java 8» JRE и JDK распространялись как отдельные загрузки. Начиная с Java 11 существует только JDK — он включает всё необходимое, так что не ищите отдельную среду выполнения.

Выбор дистрибутива JDK

Oracle JDK — далеко не единственный вариант, и в наши дни он редко оказывается наиболее удобным. Широко используются несколько бесплатных сборок OpenJDK с открытым исходным кодом:

  • Eclipse Temurin — выбор большинства команд; заранее собранные бинарные файлы для каждой платформы.
  • Amazon Corretto — поддерживается AWS; сборки с долгосрочной поддержкой.
  • Microsoft Build of OpenJDK — сборки с поддержкой Microsoft, хорошо интегрированные с Azure.
  • Azul Zulu — широкое покрытие версий, включая старые релизы.
  • Oracle JDK — собственная сборка Oracle; бесплатна по условиям No-Fee Terms and Conditions для большинства использований.

Все они реализуют один и тот же язык и стандартную библиотеку. Для этого руководства выберите любой LTS-релиз — Java 21, если есть возможность, иначе Java 17.

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

  1. Скачайте установщик для Windows x64 (.msi) для выбранного JDK с сайта дистрибутива.
  2. Дважды щёлкните установщик и примите настройки по умолчанию. Установщик обычно автоматически регистрирует java и javac в вашем PATH.
  3. Откройте новое окно Command Prompt или PowerShell (существующие терминалы не увидят обновлённый PATH).
  4. Выполните приведённые ниже команды проверки.

Если команды не найдены, необходимо вручную добавить каталог bin JDK в PATH через Параметры → Система → О системе → Дополнительные параметры системы → Переменные среды.

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

Самый простой способ — использовать Homebrew:

brew install --cask temurin@21

Замените 21 на нужную вам LTS-версию. Homebrew устанавливает JDK в /Library/Java/JavaVirtualMachines/ и настраивает его так, что java и javac работают из любого нового терминала.

Без Homebrew скачайте .pkg-установщик с сайта дистрибутива и запустите его. После этого может потребоваться открыть новый терминал.

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

На Debian и Ubuntu:

sudo apt update
sudo apt install openjdk-21-jdk

На Fedora, RHEL и CentOS Stream:

sudo dnf install java-21-openjdk-devel

На Arch:

sudo pacman -S jdk21-openjdk

Если вам нужен конкретный поставщик или версия, не включённая в пакеты вашего дистрибутива, SDKMAN! — стандартный инструмент для управления несколькими JDK на одном компьютере с Linux или macOS.

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

Откройте новый терминал и выполните:

java -version
javac -version

Вы должны увидеть вывод, похожий на:

openjdk version "21.0.4" 2024-07-16 LTS
OpenJDK Runtime Environment Temurin-21.0.4+7 (build 21.0.4+7-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.4+7 (build 21.0.4+7-LTS, mixed mode)

javac 21.0.4

Если обе команды выводят свои версии, JDK готов к работе. Если вы видите «command not found» (или «java is not recognized…» на Windows), это означает, что каталог bin JDK отсутствует в вашем PATH — повторно проверьте шаг установки или откройте новый сеанс терминала.

Настройка JAVA_HOME (необязательно, но распространено)

Многие инструменты сборки и IDE ищут переменную среды JAVA_HOME, указывающую на корневой каталог установки JDK. Явная установка этой переменной помогает избежать путаницы при наличии нескольких JDK.

На macOS и Linux добавьте экспорт в профиль оболочки (~/.zshrc, ~/.bashrc и т.д.):

export JAVA_HOME="$(/usr/libexec/java_home -v 21)"    # macOS
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk          # typical Linux path
export PATH="$JAVA_HOME/bin:$PATH"

На Windows установите JAVA_HOME через диалог Переменные среды и добавьте %JAVA_HOME%\bin в начало PATH.

Использование нескольких JDK

Нередко для разных проектов требуются разные версии Java — одно приложение на Java 17, другое на Java 21. Устанавливать несколько JDK рядом вполне допустимо; нюанс в том, что только один из них может быть первым в вашем PATH одновременно.

Самый удобный способ переключения между ними — SDKMAN! (macOS и Linux):

sdk install java 21.0.4-tem    # install Temurin 21
sdk install java 17.0.12-tem   # install Temurin 17
sdk use java 17.0.12-tem       # switch this shell to 17
sdk default java 21.0.4-tem    # make 21 the default everywhere

sdk use меняет версию только для текущего терминала, что идеально для переключения между проектами. На Windows аналогичным инструментом является jabba, либо можно просто указывать нужную версию через JAVA_HOME.

Что дальше

После установки JDK следующая глава — Настройка среды разработки Java — рассказывает об IDE и структуре проекта. Затем Hello World на Java проведёт вас через компиляцию и запуск первой программы с помощью команд javac и java, которые вы только что проверили.

Практика

Практика
Какие из перечисленного являются инструментами разработки, которые JDK добавляет поверх JRE? (Выберите все подходящие варианты.)
Какие из перечисленного являются инструментами разработки, которые JDK добавляет поверх JRE? (Выберите все подходящие варианты.)
Was this page helpful?