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 регулярно оновлюється. Візьміть за правило перевіряти наявність нових версій, особливо якщо йдеться про виправлення безпеки.