Veamos paso a paso cómo instalar OpenJDK en un sistema operativo linux.
- Descargar el instalador:
- Página principal: https://openjdk.java.net/
- Binario: https://jdk.java.net/11/
- Descomprimir el binario en la carpeta de destino. Generalmente es en
/opt/java:
- Crea la carpeta java dentro de opt
- Descomprime el binario
sudo mkdir -p /opt/java
sudo tar xvf openjdk-11*_bin.tar.gz -C /opt/java
- Crear las variables de entorno
- JAVA_HOME: Esta variable la utiliza java para saber dónde se encuentran sus binarios.
export JAVA_HOME=/ruta/destino/versionjava
// en nuestro ejemplo, la ruta sería:
// /opt/java/jdk-11.0.2
// Nota: debes tener cuidado de NO colocar el slash `/` al final.
Puedes confirmar la creación de la variable usando:
echo $JAVA_HOME
// la salida debe ser algo como: /opt/java/jdk-11.0.2
- PATH: Se debe agregar la carpeta bin de la instalación de java en el PATH para que el shell encuentre los ejecutables de java.
export PATH=$PATH:$JAVA_HOME/bin
Confirma la actualización de PATH usando:
echo $PATH
// la salida debe ser algo como:
// /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/java/jdk-11.0.2/bin
// nótese la ruta de los binarios de la instalación de java
Si todo va bien, ya puedes ejecutar java para conocer la versión que se está usando:
java -version
// La salida debe ser algo como:
// openjdk version "11.0.2" 2018-10-16
// OpenJDK Runtime Environment 18.9 (build 11.0.2+7)
// OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+7, mixed mode)
- Persistiendo las variables de entorno
El problema que tenemos en este momento es que si cerramos la consola, cuando volvamos a ingresar ya no está la variable $JAVA_HOME y la variable $PATH no apunta a la carpeta bin de la instalación de java. Así que debemos persistir estos cambios para que cada vez que se ingrese a la consola, las variables de entorno estén correctamente configuradas.
Existen diferentes formas de persistir las variables de entorno. Se pueden persistir para un único usuario y también se pueden persistir para todo el sistema. En este último las variables de entorno quedan para todos los usuarios.
4.1. Persistir las variables a un único usuario:
El archivo que debemos modificar para este paso se encuentra en: /home/tu-usuario/.bashrc (cambia tu-usuario por el nombre de usuario al que vas a configurar). En este archivo agregaremos las instrucciones export que vimos en los anteriores pasos.
\* Nota: ten cuidado al editar estos archivos, cualquier error al configurarlo y puedes sufrir de comportamientos extraños o que el sistema deje de funcionar.
- Edita el archivo
.bashrcdel usuario y al final del mismo agrega lo siguiente:
export JAVA_HOME=/opt/java/jdk-11.0.2
export PATH=$PATH:$JAVA_HOME/bin
- Ahora cierra la consola y vuelvela a abrir, ya debes tener java funcionando. Puedes confirmarlo así:
java -version
// La salida debe ser algo como:
// openjdk version "11.0.2" 2018-10-16
// OpenJDK Runtime Environment 18.9 (build 11.0.2+7)
// OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+7, mixed mode)
4.2 Persistir las variables a todos los usuarios: Personalmente me gusta más configurar las variables de java a todo el sistema. Con esto no me preocupo por cual usuario ejecuta alguna aplicación.
\* Nota: ten cuidado al editar estos archivos, cualquier error al configurarlo y puedes sufrir de comportamientos extraños o que el sistema deje de funcionar.
- Edita el archivo
/etc/environment. En la línea donde se encuentrePATHagrega la dirección absoluta del binario de la instalación de java. Esto es necesario ya que aquí no podemos llamar la variable de entorno $JAVA_HOME. Por lo tanto, la línea path debe quedar algo así (si tu PATH tiene más contenido, no lo vayas a borrar, sólo agrega la ruta de java):
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/java/jdk-11.0.2/bin"
- Agrega una nueva línea para la variable JAVA_HOME así:
JAVA_HOME="/opt/java/jdk-11.0.2"
En mi caso, el archivo /etc/environment tiene dos líneas, una para PATH y otra para JAVA\_HOME.
- Por último, debes volver a cargar esas variables de entorno para que tomen efecto (o puedes reiniciar el sistema, lo cual es muy aburrido):
source /etc/environment
- Ahora a divertirnos!
java -version
