Встановлення Java на Rocky Linux 10: Простий посібник

Rocky відомий як одна з найстабільніших і надійних Linux-дістробюцій — безкоштовна альтернатива Red Hat Enterprise Linux. Не дивно, що розробники та системні адміністратори часто обирають його як основний варіант для створення та запуску Java-додатків.

У цьому посібнику я вас проведу через процес встановлення Java на Rocky Linux 10. Крім того, ми переконаємось, що ваша система налаштована правильно, розглянувши, як конфігурувати необхідні змінні середовища для того, щоб ваше встановлення Java було повністю готовим до роботи. Але спочатку — трохи теорії.

OpenJDK та Oracle JDK: Основні відмінності

В інших посібниках ви можете знайти інструкції для встановлення Oracle-версії Java. Але я не буду цього розглядати з певної причини — і ось чому.

По-перше, версія Java, доступна в репозиторіях Rocky Linux 10, ліцензована під GPLv2, що означає, що її можна використовувати безкоштовно, навіть для комерційних цілей.

Oracle, з іншого боку, розповсюджує свою версію під умовами No-Fee Terms and Conditions (NFTC). Хоча на перший погляд це може виглядати просто, в ліцензії є деякі приховані підводні камені, про які розробники та організації повинні знати, використовуючи її в продукції.

По-перше, no-fee — це не те ж саме, що і відкритий код. Тобто, Oracle JDK під NFTC не є відкритим кодом, тому ви не маєте права змінювати або перепродавати вихідний код. З Oracle JDK, попри те, що дозволяється безкоштовне внутрішнє і продуктивне використання та перепродаж незмінних файлів, все ж не можна розповсюджувати модифіковані збірки, і період безкоштовного використання обмежений за часом для кожної версії.

Таким чином, на практиці реалізація Oracle не надає вам нічого більше — обидві версії мають одну й ту ж основу, тобто, обидві побудовані на коді OpenJDK.

Отже, вибір зрозумілий: OpenJDK. Тепер, коли ми з’ясували цей момент, повернемось до основної теми цього посібника.

Вибір правильного пакета Java на Rocky Linux 10

Перед встановленням Java на Rocky Linux 10, спочатку потрібно визначити — який пакет OpenJDK вибрати. Rocky пропонує три основні варіанти, тож давайте швидко розглянемо, що робить кожен з них. Таким чином, у вас буде чітке уявлення про те, який з них найкраще відповідає вашим потребам.

  • java-21-openjdk (Стандартне середовище виконання): забезпечує повне середовище виконання Java, необхідне для запуску Java-додатків. Отже, якщо ви хочете запускати Java-програми (включаючи додатки з графічним інтерфейсом), це ідеальний варіант.
  • java-21-openjdk-headless (Мінімальне середовище): спрощене середовище виконання, оптимізоване для серверних або командних інтерфейсів. Без підтримки GUI — виключає AWT, Swing та інші залежності X11. Ідеально для середовищ, де графічні компоненти не потрібні.
  • java-21-openjdk-devel (Інструменти для розробки): забезпечує набір для розробки Java (JDK) для компіляції та створення Java-додатків. Якщо ви плануєте писати, компілювати або створювати Java-додатки, а не лише запускати їх, це те, що вам потрібно.

Встановлення Java на Rocky Linux 10

Рекомендується встановити пакет “java-21-openjdk-devel” як універсальний варіант. Навіть якщо ви не плануєте самостійно компілювати Java-додатки, корисно мати таку можливість. Багато сервісів компілюють Java-код у процесі роботи, тому наявність цього пакету спрощує більшість налаштувань Java значно.

Встановлення дуже просте — просто виконайте одну команду DNF:

sudo dnf install java-21-openjdk-devel

Як ви можете помітити, встановлення “java-21-openjdk-devel” також автоматично завантажує “java-21-openjdk”, а це, в свою чергу, підтягує “java-21-openjdk-headless” як залежність. Таким чином, ви отримуєте повний набір Java.

Після того, як пакети завантажено та встановлено, використовуйте нижче наведене команду для перевірки того, що встановлення пройшло успішно. Вона повинна вивести щось подібне:

java -version

І все. Ми успішно встановили OpenJDK 21 на нашій системі Rocky Linux 10.

Налаштування змінної середовища JAVA_HOME

Думайте про змінну середовища “JAVA_HOME” як про свого роду “контракт” у світі Java. Вона просто вказує на кореневий каталог вашого JDK або JRE. Але чому це так важливо?

Справа в тому, що багато інструментів — таких як Maven, Gradle, Tomcat, Jenkins та багато інших — використовують “JAVA_HOME” для визначення, де встановлено ваш JDK. Крім того, багато CI/CD конвеєрів, образів Docker і середовищ розробки також вимагають, щоб ця змінна була налаштована. Якщо її немає, деякі з них можуть навіть не запуститися.

Знайти правильний шлях для “JAVA_HOME” дуже просто — просто виконайте команду нижче:

readlink -f /usr/bin/java | sed "s:bin/java::"

Проте, замість того, щоб вручну редагувати файл “~/.bashrc” для додавання шляху, або тимчасово експортувати змінні, ось простіший, автоматизований спосіб зробити зміни постійними. Виконайте наступні чотири рядки в терміналі:

sudo tee /etc/profile.d/java.sh > /dev/null <<'EOF'
export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java)))
export PATH=$JAVA_HOME/bin:$PATH
EOF

Нарешті, зробіть файл “java.sh”, який ми щойно створили, виконуваним:

sudo chmod +x /etc/profile.d/java.sh

Після виходу з системи та повторного входу, змінна середовища “JAVA_HOME” завжди відповідатиме активній версії Java. Просте перевірка:

echo $JAVA_HOME

Видалення Java з Rocky Linux 10

Якщо, з якихось причин, ви хочете видалити Java з вашої системи Rocky 10, ось як це зробити. Спочатку використовуйте команду нижче, щоб дізнатися про всі локально встановлені пакети Java.

rpm -aq | grep openjdk

Потім просто передайте їх назви як аргументи до команди dnf remove.

sudo dnf remove java-21-openjdk-headless java-21-openjdk java-21-openjdk-devel

І нарешті, не забудьте видалити файл “java.sh”, який ви створили раніше.

sudo rm /etc/profile.d/java.sh

Висновок

Як бачите, за правильною інструкцією, встановлення Java на Rocky Linux 10 є простим і може бути завершено за кілька хвилин. Тепер ви готові запускати Java-додатки, розвивати Java-програми та насолоджуватися всіма перевагами цієї потужної мови програмування.

Дякую за ваш час! Сподіваюсь, цей посібник був корисним. Ваші відгуки та коментарі завжди вітаються.