Cómo instalar Java en Linux

No importa qué sistema operativo estés ejecutando, generalmente hay varias formas de instalar una aplicación.

A veces puedes encontrar una aplicación en una tienda de aplicaciones, o puedes instalarla con un administrador de paquetes como DNF en Fedora o Brew en Mac, y otras veces, puedes descargar un archivo ejecutable o un instalador desde un sitio web.

Debido a que Java es un backend tan popular para tantas aplicaciones, es bueno entender las diferentes formas en que puedes instalarlo.

La buena noticia es que tienes muchas opciones, y este artículo las cubre todas.

La mala noticia es que Java es grande, no tanto en tamaño como en alcance.

Java es un lenguaje de código abierto y una especificación, lo que significa que cualquiera puede, en teoría, crear una implementación del mismo.

Lo anterior significa que, antes de poder instalar algo, debes decidir qué Java deseas instalar.

¿Necesitas JVM o JRE o JDK?

Java se divide ampliamente en dos categorías descargables.

La máquina virtual Java (JVM) es un componente de tiempo de ejecución; es el “motor” que permite que las aplicaciones Java se inicien y se ejecuten en tu computadora.

Está incluido en el Java Runtime Environment (JRE).

El Kit de desarrollo de Java (JDK) es un kit de herramientas de desarrollo: puedes pensar en él como un garaje donde se sientan los encargados del mantenimiento haciendo ajustes, reparaciones y mejoras.

El JDK incluye el Java Runtime Environment (JRE).

En términos de descargas, esto se traduce en:

  • Si eres un usuario que busca ejecutar una aplicación Java, solo necesitas el JRE (que incluye una JVM).
  • Si eres un desarrollador que busca programar en Java, necesitas el JDK (que incluye las bibliotecas JRE, que a su vez incluye una JVM).

¿Cuál es la diferencia entre OpenJDK, IcedTea y OracleJDK?

Cuando Oracle compró Sun Microsystems, Java fue una parte importante de la venta.

Afortunadamente, Java es una tecnología de código abierto, por lo que, si no estás satisfecho con la forma en que Oracle mantiene el proyecto, tienes otras opciones.

Oracle agrupa componentes patentados con sus descargas de Java, mientras que el proyecto OpenJDK es de código abierto.

El proyecto IcedTea es esencialmente OpenJDK, pero su objetivo es facilitar a los usuarios la creación e implementación de OpenJDK al usar herramientas de código abierto y totalmente gratuitas.

¿Qué Java debo instalar?

Si te sientes abrumado por las opciones, entonces la respuesta fácil de qué implementación de Java debe instalar es la que te resulte más fácil de instalar.

Cuando una aplicación te dice que necesita Java 12, pero tu repositorio solo tiene Java 8, está bien instalar cualquier implementación de Java 12 que pueda encontrar en una fuente confiable.

En Linux, puedes tener instaladas varias versiones diferentes de Java a la vez, y no interferirán entre sí.

Si eres un desarrollador que necesita elegir, entonces debes considerar qué componentes necesitas.

Si optas por la versión de Oracle, ten en cuenta que hay complementos y fuentes patentados en el paquete, que podrían interferir con la distribución de tu aplicación.

Es más seguro desarrollar en IcedTea u OpenJDK.

Instalar OpenJDK desde un repositorio

Ahora que conoces tus opciones, puedes buscar OpenJDK o IcedTea con tu administrador de paquetes e instalar la versión que necesitas.

Algunas distribuciones usan la palabra clave latest para indicar la versión más reciente, que generalmente es lo que necesitas para ejecutar cualquier aplicación que estés intentando ejecutar.

Dependiendo del administrador de paquetes que uses, incluso podrías considerar usar grep para filtrar los resultados de búsqueda para incluir solo las últimas versiones. Por ejemplo, en Fedora:

Solo si la aplicación que estás intentando ejecutar insiste en que necesitas una versión heredada de Java, debes mirar más allá de la última versión.

Instala Java en Fedora o similar con:

Si tu distribución no usa la etiqueta latest, puedes usar otra palabra clave, como default. Aquí hay una búsqueda de OpenJDK en Debian:

En este caso, el paquete default-jre es apropiado para los usuarios comunes, y default-jdk es adecuado para los desarrolladores.

Por ejemplo, para instalar el JRE en Debian:

Java ya está instalado.

Probablemente hay muchos muchos paquetes relacionados con Java en tu repositorio. Debes buscar en OpenJDK y buscar el JRE o JVM más reciente si eres un usuario común y el JDK más reciente si eres un desarrollador.

Instalar Java desde internet

Si no puedes encontrar un JRE o JDK en tu repositorio, o los que encuentras no se ajustan a tus necesidades, puedes descargar los paquetes Java de código abierto de Internet.

Puedes encontrar descargas de OpenJDK en openjdk.java.net en forma de tarball que requiere instalación manual, o puedes descargar la  edición Zulu Community de Azul en forma de tarball o paquetes RPM o DEB instalables.

Instalar Java desde un archivo TAR

Si descargas un archivo TAR desde Java.net o Azul, debes instalarlo manualmente.

Esto a menudo se llama una instalación “local” porque no estás instalando Java en una ubicación “global”. En cambio, eliges un lugar conveniente en tu (PATH) RUTA.

Si no sabes qué hay en tu RUTA, echa un vistazo para averiguarlo:

En este ejemplo PATH, las ubicaciones /usr/local/bin y /home/seth/bin son buenas opciones.

Si eres el único usuario en tu computadora, entonces tu propio directorio de inicio tiene sentido. En caso de que haya muchos usuarios en tu computadora, entonces una ubicación común, como /usr/local u /opt, es la mejor opción.

Si no tienes acceso a directorios de nivel de sistema como /usr/local, que requieren permisos de sudo, debes crear un contenedor local (para “binario”, no un contenedor de residuos) o una carpeta de Aplicaciones en tu propia carpeta de inicio:

Agrega esto a tu RUTA, si aún no está allí:

Finalmente, desarchiva el tarball en el directorio que hayas elegido.

Java ya está instalado.

Instalar Java desde un RPM o DEB

Si descargas un archivo RPM o DEB de Azul.com, puedes usar tu administrador de paquetes para instalarlo.

Para Fedora, CentOS, RHEL y similares, descarga el RPM e instálalo usando DNF:

Para Debian, Ubuntu, Pop_OS y distribuciones similares, descarga el paquete DEB e instálalo usando Apt:

Java ya está instalado.

Configurar tu versión de Java con alternatives

Algunas aplicaciones se desarrollan para una versión específica de Java y no funcionan con ninguna otra versión.

Esto es raro, pero sucede, y en Linux, puedes usar el método de instalación local o la aplicación alternativa para lidiar con este conflicto.

El comando alternatives analiza las aplicaciones instaladas en tu sistema Linux y te permite elegir qué versión usar.

Algunas distribuciones, como Slackware, no proporcionan un comando alternatives, por lo que debes utilizar el método de instalación local.

En Fedora, CentOS y distribuciones similares, el comando es alternatives. En Debian, Ubuntu y similares, el comando es update-alternatives.

Para obtener una lista de las versiones disponibles de una aplicación actualmente instalada en tu sistema Fedora, haz lo siguiente:

En Debian, debes especificar la aplicación para la que deseas alternativas:

Para elegir qué versión deseas que el sistema sea predeterminado en Fedora, usa este comando:

En Debian:

Puedes cambiar la versión predeterminada de Java según sea necesario en función de la aplicación que deseas ejecutar.

Ejecutando una aplicación Java

Las aplicaciones Java generalmente se distribuyen como archivos JAR.

Dependiendo de cómo instalaste Java, es posible que tu sistema ya esté configurado para ejecutar una aplicación Java, lo que te permite hacer doble clic en el icono de la aplicación (o seleccionarlo en el menú de una aplicación) para ejecutarlo.

Si tuviste que hacer una instalación local de Java que no está integrada con el resto de tu sistema, puedes iniciar aplicaciones Java directamente desde la terminal:

Java es algo bueno

Java es uno de los pocos entornos de programación que prioriza el desarrollo multiplataforma.

No hay nada tan liberador como preguntar si una aplicación se ejecuta en tu plataforma y luego descubrir que la aplicación se programó en Java.

Tan simple como eso, estás libre de cualquier ansiedad de plataforma que hayas tenido, ya seas un desarrollador o un usuario común.