Переключение версии Java по умолчанию в Debian

debian · java · версия по умолчанию · update-java-alternatives · java-common · по дефолту
Если на компьютере с операционной системой Debian установлены несколько версий Java, то иногда бывает необходимо сменить, какая из них должна использоваться по умолчанию (по дефолту). Для этого существует специальная утилита, которая входит в состав пакета java-common — update-java-alternatives. Этот пакет скорее всего уже есть в системе, если установлена Java.

Получение списка путей установок различных версий

Прежде всего, при помощи утилиты update-java-alternatives можно получить список путей, по которым находятся файлы различных версий Java. Для этого необходимы права суперпользователя:
sudo update-java-alternatives --list
Примерный вывод при выполнении команды будет такой:
java-1.10.0-openjdk-amd64   1101   /usr/lib/jvm/java-1.10.0-openjdk-amd64
java-1.11.0-openjdk-amd64   1111   /usr/lib/jvm/java-1.11.0-openjdk-amd64
Это очень полезная информация, так как знание пути, по которому находится нужная версия Java, необходимо для выполнения основного действия.

Проверка версии, установленной по дефолту

Следующим подготовительным шагом будет определение, какая именно версия сейчас используется по умолчанию. Внимание, тут нет опечатки, дефис перед словом version всего один:
java -version
Примерный вывод в терминале после выполнения команды:
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment (build 11+17-Debian-2)
OpenJDK 64-Bit Server VM (build 11+17-Debian-2, mixed mode, sharing)
Видно, что дефолтной является версия 11. Особое внимание стоить обратить на дату релиза — сентябрь. Я пишу эти строки в июле.

Установка версии по умолчанию

Почему это бывает нужно? В моём случае, сразу после установки у меня не запустилась среда разработки Arduino, которая написана на Java. Собственно, вместе с Arduino и установилась 11-ая версия Java. Я решил, что она ещё не доработана (у меня Debian Testing) и стоит попробовать предыдущую версию. Переключился с версии 11 на версию 10 следующей командой:
sudo update-java-alternatives --set /usr/lib/jvm/java-1.10.0-openjdk-amd64
После --set я указал путь до файлов установленной Java 10 версии. Этот путь я выяснил выше, используя команду --list. Теперь при определении версии Java вывод в терминале стал таким:
openjdk version "10.0.2" 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Debian-1)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Debian-1, mixed mode)
И с Arduino стало всё хорошо.

Обсуждение

Никто не оставлял здесь комментариев.
Войдите на сайт, чтобы присоединиться к обсуждению.