Найти в Дзене
Эникей на передержке

Установка OpenJDK 24 в Debian | Linux

Оглавление

В стандартных репозиториях Debian 12 самой свежей версией OpenJDK всё ещё остаётся OpenJDK 17, в то время как некоторому актуальному ПО для нормальной работы может требоваться версия OpenJDK 21 и выше.

Откуда скачать релизы?

Актуальный релиз всегда можно найти по адресу: https://jdk.java.net/

OpenJDK 24 на момент выпуска статьи является последней стабильной версией
OpenJDK 24 на момент выпуска статьи является последней стабильной версией

Архив версий

Более старые версии будут доступны в архиве: https://jdk.java.net/archive/

Архив релизов
Архив релизов

Установка OpenJDK вручную

Скачиваем архив с бинарниками под свою архитектуру, например:

curl -o /tmp/openjdk-24.tar.gz https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_linux-x64_bin.tar.gz

Распаковываем в /opt/java:

mkdir /opt/java; tar -xzf /tmp/openjdk-24.tar.gz -C /opt/java/

Теперь нам необходимо рассказать системе, что у нас есть новая установка java и при этом не поломать уже имеющиеся версии. Ещё было бы неплохо переключаться между ними, если потребуется. Для этого отлично подходит такой инструмент, как update-alternatives:

sudo update-alternatives --install /usr/bin/java java /opt/java/jdk-24/bin/java 1
  • /usr/bin/java — путь к исполняемому файлу в системном каталоге (вместо него будет создан симлинк);
  • java — имя альтернативы;
  • /opt/java/jdk-24/bin/java — путь к исполняемому файлу java новой версии;
  • 1 — приоритет, чем он выше, тем более вероятно его применение в автоматическом режиме.

Выведем информацию по текущим альтернативам для java:

update-alternatives --display java
Информация об установленных версиях
Информация об установленных версиях

Сейчас автоматически выбирается OpenJDK 17. Давайте это изменим:

sudo update-alternatives --config java
Выбор альтернативы java
Выбор альтернативы java

Указав 1, я выбрал запуск 21 версии java:

Версия OpenJDK
Версия OpenJDK

При необходимости добавьте альтернативы для javac, jar и т.д.