Java, будучи широко распространенным языком программирования, пережил множество обновлений и версий. Иногда программное обеспечение, которое мы запускаем или разрабатываем, требует определенной версии. Как же переключаться между этими версиями в Linux? Позвольте рассказать вам об этом шаг за шагом.
Почему вам могут понадобиться разные версии Java
Прежде чем перейти к рассмотрению этого процесса, следует понять, зачем может понадобиться несколько версий Java. Java постоянно развивается, новые версии отличаются повышенной производительностью, функциональностью и безопасностью. Однако при таком развитии не всегда гарантируется обратная совместимость.
Например, при разработке нового приложения я могу с удовольствием использовать новейшие возможности Java. Однако при сопровождении устаревшего приложения старая версия Java может быть строгим требованием. Таким образом, возникает необходимость быстрого переключения между различными версиями.
1. Проверка установленных версий Java
Перед переключением необходимо узнать, какие версии установлены на машине в данный момент.
Устанавливаем update-java-alternatives:
Сначала установим необходимый пакет:
sudo apt-get install java-common
Выполните эту команду:
sudo update-java-alternatives --list
Эта команда выводит список всех установленных версий Java. Это может выглядеть примерно так:
java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64
В этом выводе сообщается, что на данной машине установлены Java 8 и Java 11.
Проверить текущую версию можно с помощью следующей команды:
java -version
Как можно заметить, Java 8 активна на тестовом компьютере.
2. Установка новой версии Java
Что делать, если нужная версия еще не установлена? Вот как ее можно добавить:
Обновить репозиторий пакетов
Сначала обновите репозиторий пакетов:
sudo apt update
Установка желаемой версии Java
Допустим, вы хотите установить Java 11:
sudo apt install openjdk-11-jdk
Проверка установки
Чтобы убедиться в том, что новая версия установлена:
sudo update-java-alternatives --list
Теперь в списке должна появиться Java 11.
3. Переключение между версиями Java на Ubuntu
Способ 1: Использование update-java-alternatives
Этот инструмент можно использовать для переключения между установленными версиями:
sudo update-java-alternatives --set java-11-openjdk-amd64
Замените java-11-openjdk-amd64 на желаемую версию.
Замечание: Если при выполнении update-java-alternatives возникают какие-либо проблемы, это может быть связано с тем, что некоторые ссылки на выбранную версию не существуют. Это связано с отсутствием файла .jinfo. К сожалению, многие пользователи сообщают об этой проблеме даже после переустановки Java. Если вы оказались в такой же ситуации, не расстраивайтесь: есть альтернативный метод!
Способ 2: Использование альтернатив
Эта команда позволяет осуществлять управление вручную:
sudo alternatives --config java
Появится список установленных версий Java. Просто выберите номер, соответствующий версии, которую вы хотите использовать.
4. Установка переменной окружения JAVA_HOME
После смены версии Java желательно соответствующим образом установить переменную окружения JAVA_HOME.
Найдите путь установки Java
sudo alternatives --config java
Это может выглядеть как /usr/lib/jvm/java-11-openjdk-amd64.
Редактирование файла .bashrc или .bash_profile
Откройте файл с помощью:
nano ~/.bashrc
Добавьте эту строку в конец (замените путь на путь вашей установки Java):
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
Применить изменения
source ~/.bashrc
5. Проверка переключения
Чтобы убедиться в успешном переключении, выполните следующие действия:
java -version
Вывод должен отражать выбранную вами версию Java.
Советы профессионалов
- Помните о своих потребностях: Всегда помните о требованиях проекта. Несмотря на соблазн всегда использовать последнюю версию Java, это не всегда может быть лучшим выбором с точки зрения совместимости.
- Автоматизируйте процесс: Если вы часто переходите на другой язык, подумайте о написании сценария, который будет менять версии и устанавливать JAVA_HOME одной командой.
- Следите за обновлениями: Java регулярно обновляется. Возьмите за правило проверять наличие новых версий, особенно если речь идет об исправлениях безопасности.