Введение
Java — один из самых популярных языков программирования, используемый для создания различных типов приложений и систем.
Существуют две разные реализации Java, OpenJDK и Oracle Java, почти не отличающиеся между собой, за исключением того, что Oracle Java имеет некоторые дополнительные коммерческие функции. Лицензия Oracle Java разрешает только некоммерческое использование программного обеспечения, например личное использование и использование для разработки. OpenJDK — это реализация платформы Java с открытым исходным кодом.
Репозитории CentOS 7 по умолчанию включают два последних основных выпуска Java LTS: Java 8 и Java 11.
В этом руководстве мы объясним, как установить одну или несколько версий Java (OpenJDK) в CentOS 7 и как установить Java по умолчанию с помощью альтернатив.
Установите OpenJDK 11
Общая рекомендация — установить последнюю версию Java LTS (JDK 11). Для некоторых приложений на основе Java может потребоваться определенная версия Java, поэтому вам может потребоваться обратиться к документации по приложению.
Чтобы установить OpenJDK 11 в CentOS 7, выполните следующую команду от имени пользователя root или пользователя с привилегиями sudo:
sudo yum install java-11-openjdk-devel
После завершения установки вы можете проверить это, проверив версию Java:
java -version
Вывод должен выглядеть так:
openjdk version "11.0.4" 2019-07-16 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.4+11-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.4+11-LTS, mixed mode, sharing)
Java была успешно установлена в системе CentOS 7.
CentOS 7 также поддерживает безголовую версию OpenJDK, которая обеспечивает минимальное время выполнения Java, необходимое для запуска приложений без графического пользовательского интерфейса (без поддержки клавиатуры, мыши и систем отображения). Эта версия больше подходит для серверных приложений, так как имеет меньше зависимостей и использует меньше системных ресурсов.
Чтобы установить безголовую версию OpenJDK 11:
sudo yum install java-11-openjdk-headless
Если вы уже установили java-11-openjdk-devel, безголовый пакет будет установлен как зависимость.
Установите OpenJDK 8
Java 8, старая версия Java LTS, по-прежнему поддерживается и широко используется. Если вашему приложению требуется Java 8, вы можете установить его, введя следующую команду:
sudo yum install java-1.8.0-openjdk-devel
Проверьте установку, проверив версию Java:
java -version
Вывод должен выглядеть так:
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)
Чтобы установить безголовую версию OpenJDK 8:
sudo yum install java-1.8.0-openjdk-headless
Установить версию Java по умолчанию
Если в вашей системе CentOS установлено несколько версий Java, вы можете использовать альтернативную систему, чтобы указать, какая версия Java будет использоваться при вводе java в терминале.
Чтобы проверить, какая версия Java установлена по умолчанию, введите:
java -version
Если вы хотите изменить версию по умолчанию, используйте команду альтернатив:
sudo alternatives --config java
Вывод будет выглядеть следующим образом:
There are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
1 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.4.11-0.el8_0.x86_64/bin/java)
*+ 2 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el8_0.x86_64/jre/bin/java)
Enter to keep the current selection[+], or type selection number:
На экране будет напечатан список всех установленных версий Java. Введите номер версии, которую вы хотите использовать по умолчанию, и нажмите Enter на клавиатуре.
Вы также можете изменить версию javac по умолчанию:
sudo alternatives --config java
javac — командная утилита для компиляции Java-программ.
Установите переменную среды JAVA_HOME.
Переменная среды JAVA_HOME используется некоторыми приложениями Java для определения пути установки Java и указания версии Java, которую следует использовать для запуска приложения.
Чтобы установить переменную JAVA_HOME для каждого пользователя, добавьте ее в файл ~/.bashrc или любой другой файл конфигурации, который загружается при входе пользователя в систему. Для общесистемной настройки используйте сценарий в каталоге /etc/profile.d.
Предположим, мы хотим установить для JAVA_HOME значение OpenJDK 8 в файле profile.d.
Откройте файл profile.d:
vi /etc/profile.d/java.sh
Добавьте следующую строку кода
JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk"
Чтобы изменения вступили в силу в текущей оболочке, вы можете выйти из системы и снова войти в нее или использовать команду source:
source /etc/profile.d/java.sh
Убедитесь, что переменная среды JAVA_HOME установлена правильно:
echo $JAVA_HOME
Вывод должен показать путь установки Java:
/usr/lib/jvm/java-1.8.0-openjdk
Вы также можете установить JAVA_HOME в конфигурации приложения, в файле системного диска или в командной строке при запуске программы.
Например, чтобы запустить Maven с помощью Java 8, введите:
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk mvn --version
...
Java version: 1.8.0_222, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el8_0.x86_64/jre...
Вывод
CentOS 7 поддерживает две основные версии Java, Java 8 и Java 11, которые можно установить с помощью диспетчера пакетов yum.