Guía de tecnologías

Instalar OpenJDK y Oracle Java 8 en CentOS 8

5 min read Linux Actualizado 17 Oct 2025
Instalar OpenJDK y Oracle Java 8 en CentOS 8
Instalar OpenJDK y Oracle Java 8 en CentOS 8

Ilustración relacionada con Java y CentOS

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

  1. Busca las versiones de OpenJDK disponibles en los repositorios de CentOS 8:
dnf search jdk

Deberías ver una salida similar (listado de paquetes); entre ellos aparecen java-11-openjdk y java-1.8.0-openjdk.

  1. Instala OpenJDK 11 (incluye herramientas de desarrollo):
dnf install java-11-openjdk-devel.x86_64
  1. Verifica la instalación:
java -version

Ejemplo 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-devel

Comprueba la versión:

java -version

Salida 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 java

Se 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: 1

Teclea el número deseado y pulsa Enter. Vuelve a comprobar la versión con:

java -version

Instalar Oracle Java 8 (paquete RPM)

  1. 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.

  2. Una vez descargado en el servidor (por SCP o descarga directa), instala con:

dnf localinstall jdk-8u231-linux-x64.rpm
  1. Verifica:
java -version

Salida 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:$PATH

Carga los cambios:

source /etc/profile.d/java.sh

Comprueba:

echo $JAVA_HOME
java -version

Ajusta 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.

Autor
Edición

Materiales similares

Podman en Debian 11: instalación y uso
DevOps

Podman en Debian 11: instalación y uso

Apt-pinning en Debian: guía práctica
Sistemas

Apt-pinning en Debian: guía práctica

OptiScaler: inyectar FSR 4 en casi cualquier juego
Guía técnica

OptiScaler: inyectar FSR 4 en casi cualquier juego

Dansguardian + Squid NTLM en Debian Etch
Redes

Dansguardian + Squid NTLM en Debian Etch

Arreglar error de instalación Android en SD
Android

Arreglar error de instalación Android en SD

Conectar carpetas de red con KNetAttach
Redes

Conectar carpetas de red con KNetAttach