Instalar OpenJDK y Oracle Java 8 en CentOS 8

Java es un lenguaje de programación gratuito, de código abierto y muy popular, diseñado para entornos distribuidos en Internet. Existen dos implementaciones principales: Oracle Java (con algunas características comerciales) y OpenJDK (implementación de código abierto de la plataforma Java).
En este tutorial aprenderás a instalar OpenJDK 11, OpenJDK 8 y Oracle Java 8 en CentOS 8, además de cómo alternar entre versiones, configurar variables de entorno y solucionar problemas frecuentes.
Variantes de intención
- Instalar Java en CentOS 8
- Instalar OpenJDK 11 CentOS 8
- Instalar OpenJDK 8 CentOS 8
- Instalar Oracle Java 8 CentOS 8
- Alternar versiones de Java en CentOS 8
Requisitos
- Un servidor con CentOS 8 en funcionamiento.
- Acceso como root o usuario con sudo.
Importante: realiza una copia de seguridad o snapshot de la máquina antes de cambios en producción.
Cómo instalar OpenJDK 11
- Busca las versiones de OpenJDK disponibles en los repositorios de CentOS 8:
dnf search jdkDeberías ver una salida similar (listado de paquetes); entre ellos aparecen java-11-openjdk y java-1.8.0-openjdk.
- Instala OpenJDK 11 (incluye herramientas de desarrollo):
dnf install java-11-openjdk-devel.x86_64- Verifica la instalación:
java -versionEjemplo de salida esperada:
openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)Cómo instalar OpenJDK 8
Algunas aplicaciones Java requieren OpenJDK 8. Para instalarlo:
dnf install java-1.8.0-openjdk-develComprueba la versión:
java -versionSalida esperada:
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)Alternar entre versiones de Java
Puedes tener múltiples versiones instaladas y seleccionar la activa con el sistema alternatives:
alternatives --config javaSe mostrará una lista similar a esta:
There are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
1 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-.../bin/java)
*+ 2 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-.../jre/bin/java)
Enter to keep the current selection[+], or type selection number: 1Teclea el número deseado y pulsa Enter. Vuelve a comprobar la versión con:
java -versionInstalar Oracle Java 8 (paquete RPM)
Accede al sitio de Oracle Java y descarga el paquete RPM de JDK 8 (por ejemplo jdk-8u231-linux-x64.rpm). Acepta la licencia según la web de Oracle.
Una vez descargado en el servidor (por SCP o descarga directa), instala con:
dnf localinstall jdk-8u231-linux-x64.rpm- Verifica:
java -versionSalida esperada para Oracle JDK 8:
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)Nota: Oracle puede cambiar las condiciones de licencia o el proceso de descarga. Para entornos automáticos, considere usar OpenJDK o un repositorio interno.
Configurar JAVA_HOME y PATH (sistema y usuario)
Para muchas aplicaciones es necesario exportar JAVA_HOME. Ejemplo para bash en /etc/profile.d/java.sh:
# /etc/profile.d/java.sh
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$JAVA_HOME/bin:$PATHCarga los cambios:
source /etc/profile.d/java.shComprueba:
echo $JAVA_HOME
java -versionAjusta la ruta a la instalación correcta listada en /usr/lib/jvm/.
Comprobaciones y criterios de aceptación
- java -version muestra la versión esperada.
- javac -version (si instalaste el -devel) muestra el compilador.
- La variable JAVA_HOME apunta al directorio JDK.
- Las aplicaciones que dependen de JAVA pueden iniciarse y ejecutan sus pruebas básicas.
Checklist por rol
Administrador de sistemas:
- Hacer snapshot antes de instalar.
- Instalar paquetes con dnf y verificar permisos.
- Configurar /etc/profile.d/java.sh y documentar cambios.
Desarrollador:
- Verificar javac y herramientas (jar, javadoc).
- Probar compilación de un artefacto simple: javac Hello.java; java Hello.
QA/Tester:
- Ejecutar pruebas de integración que dependan de la JVM.
- Validar comportamiento en la versión objetivo.
Método rápido (cheat sheet de comandos)
- Buscar paquetes: dnf search jdk
- Instalar OpenJDK 11: dnf install java-11-openjdk-devel.x86_64
- Instalar OpenJDK 8: dnf install java-1.8.0-openjdk-devel
- Instalar RPM local (Oracle): dnf localinstall jdk-8u231-linux-x64.rpm
- Alternar versiones: alternatives –config java
- Configurar JAVA_HOME: editar /etc/profile.d/java.sh
Solución de problemas comunes
Problema: java no encontrado después de la instalación.
- Verifica que /usr/bin/java sea un enlace a alternatives y que la selección sea correcta.
- Ejecuta alternatives –config java para configurar.
Problema: Aplicación requiere JDK pero solo está instalado JRE.
- Instala la variante -devel (java-*-openjdk-devel) para obtener javac.
Problema: Descarga de Oracle bloqueada o caducada.
- Considera usar OpenJDK o un repositorio interno con el RPM.
Problema: Variables de entorno no se aplican en servicios systemd.
- Añade Environment=JAVA_HOME=/ruta/en el archivo de unidad systemd o en /etc/environment.
Rollback / Desinstalación rápida
- Para eliminar un paquete instalado por dnf:
dnf remove java-11-openjdk-devel- Para paquetes Oracle instalados vía localinstall, identifica el nombre con rpm -qa | grep jdk y usa dnf remove
.
Alternativas y estrategias de despliegue
- Repositorios internos: mantener RPMs aprobados y firmados para evitar descargas manuales de Oracle.
- Contenedores: empaqueta la versión de Java necesaria dentro de la imagen Docker para aislar versiones por servicio.
- Versionado en CI: usar matrices de build con distintas JVM para verificar compatibilidad.
Seguridad y buenas prácticas
- Evita ejecutar aplicaciones Java como root. Crea usuarios específicos para servicios.
- Mantén Java actualizado con parches de seguridad cuando sea posible.
- Limita permisos de archivos de claves y configuraciones sensibles usando chmod 640/600 según corresponda.
Glosario rápido
- JVM: Máquina virtual de Java, ejecuta bytecode.
- JDK: Java Development Kit, incluye javac y herramientas de desarrollo.
- JRE: Java Runtime Environment, entorno para ejecutar aplicaciones.
- alternatives: sistema de gestión de múltiples versiones de comandos en Linux.
Caja de datos clave
- Versiones tratadas: OpenJDK 11, OpenJDK 8, Oracle Java 8.
- Comandos principales: dnf install, dnf localinstall, alternatives –config.
Pruebas de aceptación (casos básicos)
- Instalar OpenJDK 11 y ejecutar java -version → mostrar versión 11.
- Instalar OpenJDK 8 y alternar → java -version muestra 1.8.
- Instalar Oracle JDK 8 desde RPM y verificar notar la cadena “Java(TM) SE” en java -version.
Resumen final
Has aprendido a instalar y verificar OpenJDK 11, OpenJDK 8 y Oracle Java 8 en CentOS 8, cómo alternar entre versiones con alternatives, cómo configurar JAVA_HOME y cómo abordar problemas comunes. Para entornos productivos considera automatizar la instalación (Ansible, imágenes base) y mantener un repositorio interno de paquetes.
Importante: revisa las licencias de Oracle antes de usar Oracle JDK en entornos comerciales.
Materiales similares
Podman en Debian 11: instalación y uso
Apt-pinning en Debian: guía práctica
OptiScaler: inyectar FSR 4 en casi cualquier juego
Dansguardian + Squid NTLM en Debian Etch
Arreglar error de instalación Android en SD