Introducción
Java es uno de los lenguajes de programación más populares que se utiliza para crear diferentes tipos de aplicaciones y sistemas.
Hay dos implementaciones diferentes de Java, OpenJDK y Oracle Java sin casi ninguna diferencia entre ellas, excepto que Oracle Java tiene algunas características comerciales adicionales. La licencia de Oracle Java solo permite el uso no comercial del software, como el uso personal y el uso de desarrollo. OpenJDK es una implementación de código abierto de la plataforma Java.
Los repositorios predeterminados de CentOS 7 incluyen las dos últimas versiones principales de Java LTS, Java 8 y Java 11.
En este tutorial, explicaremos cómo instalar una o más versiones de Java (OpenJDK) en CentOS 7 y cómo configurar Java predeterminado a través de alternativas.
Instalar OpenJDK 11
La recomendación general es instalar la última versión de Java LTS (JDK 11). Algunas aplicaciones basadas en Java pueden requerir una versión específica de Java, por lo que es posible que deba consultar la documentación de la aplicación.
Para instalar OpenJDK 11 en CentOS 7, ejecute el siguiente comando como root o usuario con privilegios de sudo:
sudo yum install java-11-openjdk-devel
Una vez que se completa la instalación, puede verificarla verificando la versión de Java:
java -version
La salida debería verse así:
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 se instaló correctamente en el sistema CentOS 7.
CentOS 7 también es compatible con una versión sin cabeza de OpenJDK que proporciona un tiempo de ejecución mínimo de Java necesario para ejecutar aplicaciones sin una interfaz gráfica de usuario (sin soporte para sistemas de teclado, mouse y pantalla). Esta versión es más adecuada para aplicaciones de servidor, ya que tiene menos dependencias y utiliza menos recursos del sistema.
Para instalar la versión sin cabeza de OpenJDK 11:
sudo yum install java-11-openjdk-headless
Si ya ha instalado java-11-openjdk-devel, el paquete headless se instalará como una dependencia.
Instalar OpenJDK 8
Java 8, la versión anterior de Java LTS, todavía es compatible y se usa ampliamente. Si su aplicación requiere Java 8, puede instalarla escribiendo el siguiente comando:
sudo yum install java-1.8.0-openjdk-devel
Verifique la instalación comprobando la versión de Java:
java -version
La salida debería verse así:
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)
Para instalar la versión sin cabeza de OpenJDK 8:
sudo yum install java-1.8.0-openjdk-headless
Establecer la versión predeterminada de Java
Si tiene varias versiones de Java instaladas en su sistema CentOS, puede usar el sistema alternativo para establecer qué versión de Java se usará mientras escribe java en la terminal.
Para comprobar qué versión de Java está configurada como predeterminada, escriba:
java -version
Si desea cambiar la versión predeterminada, use el comando de alternativas:
sudo alternatives --config java
La salida se verá así:
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:
Se imprimirá en la pantalla una lista de todas las versiones de Java instaladas. Ingrese el número de versión que desea usar como predeterminado y presione Enter en su teclado.
Es posible que también desee cambiar la versión predeterminada de javac:
sudo alternatives --config java
javac es una utilidad de comando para compilar programas Java.
Establecer la variable de entorno JAVA_HOME
Algunas aplicaciones Java utilizan la variable de entorno JAVA_HOME para determinar la ruta de instalación de Java y especificar qué versión de Java debe utilizarse para ejecutar la aplicación.
Para configurar la variable JAVA_HOME por usuario, agréguela al archivo ~ /.bashrc o cualquier otro archivo de configuración que se cargue cuando el usuario inicia sesión. Para la configuración de todo el sistema, use un script dentro del directorio /etc/profile.d.
Supongamos que queremos establecer JAVA_HOME en OpenJDK 8 en el archivo profile.d.
Abra el archivo profile.d:
vi /etc/profile.d/java.sh
Agrega la siguiente línea de código
JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk"
Para que los cambios surtan efecto en el shell actual, puede cerrar la sesión y volver a iniciarla o utilizar el comando de origen:
source /etc/profile.d/java.sh
Verifique que la variable de entorno JAVA_HOME se haya configurado correctamente:
echo $JAVA_HOME
La salida debe mostrar la ruta de la instalación de Java:
/usr/lib/jvm/java-1.8.0-openjdk
También puede establecer JAVA_HOME en la configuración de la aplicación, en el archivo de la unidad del sistema o en la línea de comandos al iniciar el programa.
Por ejemplo, para ejecutar Maven con Java 8, escriba:
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...
Conclusión
CentOS 7 admite dos versiones principales de Java, Java 8 y Java 11, que se pueden instalar mediante el administrador de paquetes yum.