Ця сторінка потребує супровідник
Arch Linux офіційно підтримує відкриту реалізацію OpenJDK версій 7 і 8. Ці версії можуть бути без проблем встановлені одночасно, при цьому перемикання між ними проводиться за допомогою спеціального скрипта archlinux-java. Кілька інших реалізацій доступні в AUR. але вони не підтримуються офіційно.
Наступні пакети доступні в офіційних репозиторіях:
Тексти програм OpenJDK - версія 8
Примітка: JDK має залежність від JRE, тому при установці JDK буде також встановлена JRE.
Примітка: Після установки вам може знадобитися оновити змінну оточення $ PATH. Для цього необхідно відредагувати файл / etc / profile або перезайдіть в середу робочого столу.
Загальні для всіх Java-пакетів пакети java-runtime-common і java-environment-common автоматично встановлюються як залежності і надають файл настройки оточення /etc/profile.d/jre.sh. Цей файл містить всі змінні оточення, необхідні для роботи Java-середовища. Пакет java-runtime-common також надає скрипт archlinux-java. який служить для установки Java-середовища за замовчуванням. Цей скрипт створює символічні посилання / usr / lib / jvm / default і / usr / lib / jvm / default-runtime. які визначають поточну версію Java і поточну виконувану середу (JVM) в / usr / lib / jvm / java- $ мажорная_версія> - $ імя_поставщіка>. Для більшості виконуваних файлів середовища Java створюються прямі посилання в / usr / bin. інші файли доступні в $ PATH.
Важливо: Файл /etc/profile.d/jdk.sh більше не надається жодним із пакетів.
старіння пакетів
Хоча пакети в Arch Linux можуть мати пропрієтарні версії пакетів як залежностей, відкрита реалізація має свою систему версій:
- Пакети jre7-openjdk. jdk7-openjdk і jre7-openjdk-headless повинні позначатися як застарілі залежно від версії IcedTea (наприклад, 2.4.3), а не їхньою версією реалізації від Oracle (наприклад u45 у випуску 7.u45_2.4.3-1).
- Пакет icedtea-web повинен позначатися як застарілий в залежності від версії IcedTea Web (наприклад, 1.4.1), і незалежно від версії IcedTea.
Перемикання між середовищами
Для перемикання між середовищами Java використовується скрипт archlinux-java. який надає такі можливості:
Отримання списку встановлених сумісних середовищ Java
Зверніть увагу на слово (default). який позначає поточна вибрати серед Java, в даному прикладі - java-7-openjdk. Запуск конкретного файлу java і інших виконуваних файлів середовища залежить від цієї настройки. Також зверніть увагу, що в наведеному прикладі встановлена тільки виконуюча середовище (JRE) зі складу OpenJDK 8.
Установка середовища Java за замовчуванням
Порада: Використовуйте команду archlinux-java status щоб отримати перелік усіх доступних середовищ Java.
Зверніть увагу, що, якщо ім'я вказано з помилкою, скрипт не виконає ніяких дій. У прикладі з попереднього розділу, встановлений пакет jre8-openjdk. але не jdk8-openjdk. тому ім'я середовища java-8-openjdk в даному випадку невірно:
Скидання налаштувань середовища Java за замовчуванням
Зазвичай, немає необхідності скидати установку середовища Java за замовчуванням. Якщо ви все-таки хочете це зробити, використовуйте команду unset. щоб ніяка середовище більш не використовувати:
Виправлення налаштувань середовища Java за замовчуванням
Якщо в якості середовища за замовчуванням встановлена некоректна Середовище Java, команда archlinux-java fix спробує це виправити. Зверніть увагу, що якщо не була задана Середовище Java за замовчуванням, команда спробує встановити одну з доступних. Офіційно підтримувані пакети "OpenJDK 7" і "OpenJDK 8" мають при цьому більший пріоритет (в такому порядку), ніж неофіційні версії з AUR.
Запуск програми з іншою версією Java
Якщо ви хочете запускати окремий додаток з будь-якої іншої встановленої версією Java, не обов'язково кожен раз перед цим встановлювати її в якості середовища за замовчуванням: ви можете використовувати простий скрипт, який налаштує оточення спеціально для запуску вашого застосування. Наприклад, якщо за замовчуванням використовується jre7, а ви хочете використовувати jre8:
Вимоги до пакетів середовищ для підтримки archlinux-java
Цей розділ призначається для тих, хто здійснює збірку пакетів з альтернативними випусками JVM для AUR. Щоб пакет відповідав прийнятої в Arch Linux схемою з використанням скрипта archlinux-java. він повинен:
- Поміщати всі файли в / usr / lib / jvm / java- $ номер_мажорной_версіі> - $ імя_поставщіка>.
- Переконатися, що всі виконувані файли для яких пакетами java-runtime-common і java-environment-common створюються посилання присутні збираному пакеті.
- Надавати посилання з / usr / bin до виконуваних файлів тільки якщо файли посилань не належать пакетам java-runtime-common і java-environment-common.
- Імена man-сторінок повинні закінчуватися на - $ номер мажорній версії> - $ ім'я постачальника> для уникнення конфліктів (приклад дивіться в списку файлів jre8-openjdk. Де імена man-сторінок закінчуються на -openjdk8).
- Чи не оголошувати пакети інших середовищ Java, java-runtime. java-runtime-headless або java-environment як конфліктуючі. а також в якості заміщаються.
- Використовувати archlinux-java з метою встановлення, щоб встановити середу Java за замовчуванням якщо в даний момент вже не встановлена підходяще середовище (тобто, пакети не повинні примусово встановлювати будь-яку середу Java за замовчуванням). Використовуйте вихідні коди офіційно підтримуваного пакета виконується середовища Java в якості прикладу.
Також, будь ласка, майте на увазі, що:
- Пакети, яким потрібна будь-яке середовище Java повинні оголошувати про залежність до пакету java-runtime. java-runtime-headless або java-environment. як зазвичай.
- Пакети, яким потрібна конкретному середовищі Java повинні оголосити про залежність до відповідного пакету.
- Пакети OpenJDK тепер оголошують про надання функції provides = "java-runtime-openjdk = $". Це дозволяє стороннім пакетам оголошувати про залежність від OpenJDK без зазначення конкретної версії.
Несумісні середовища Java з AUR
Важливо: Пакети в AUR можуть не підтримувати archlinux-java.
Кілька пакетів в AUR надають реалізації JDK і JRE від Oracle, з них основними є jre AUR і jdk AUR.