domingo, 24 de septiembre de 2017

Instalar el Java 8u144 de Oracle en Debian Stretch


Desde la versión Wheezy los paquetes sun-java-* (Java de Oracle) no están disponibles en los repositorios. Sin embargo, se puede utilizar el paquete "JavaPackage" para generar los paquetes de Debian a partir de los distribuibles del JDK proporcionado por Oracle. En la presente entrada les explico como hacerlo.

Si deseas conocer la versión predeterminada de Java que tienes instalada antes de comenzar, puedes ejecutar el siguiente comando
$ java -version
openjdk version "1.8.0_141" OpenJDK Runtime Environment (build 1.8.0_141-8u141-b15-1~deb9u1-b15) OpenJDK 64-Bit Server VM (build 25.141-b15, mixed mode)

Lo primero que hay que hacer es instalar paquete que luego nos permitirá construir el instalador de Java, en una terminal ejecuta el siguiente comando
$ sudo apt-get install java-package

El paquete que vamos a instalar se llama "oracle-java8-jdk" y lo haremos a partir de un distribuible provisto en el sitio oficial de Oracle. Existe versión para 32 y 64 bits, sigue las instrucciones que corresponda a tu caso particular.

GNU/Linux Debian de 32 bits (i386)

Para descargar la versión de 32 bits, ejecute en una terminal el siguiente comando
$ wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-i586.tar.gz"

Para crear el paquete .deb, ejecute el siguiente comando
$ fakeroot make-jpkg jdk-8u144-linux-i586.tar.gz
Detected Debian build architecture: i386 Detected Debian GNU type: i486-linux-gnu
Detected product: Java(TM) Development Kit (JDK) Standard Edition, Version 1.8.0+update144 Oracle(TM), Inc. Is this correct [Y/n]: Y

GNU/Linux Debian de 64 bits (amd64)

Para descargar la versión de 64 bits, ejecute en una terminal el siguiente comando
wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz"

Para crear el paquete .deb, ejecute el siguiente comando
$ fakeroot make-jpkg jdk-8u144-linux-x64.tar.gz
Detected Debian build architecture: amd64 Detected Debian GNU type: x86_64-linux-gnu
Detected product: Java(TM) Development Kit (JDK) Standard Edition, Version 1.8.0+update144 Oracle(TM), Inc. Is this correct [Y/n]: Y

Instalando el paquete generado (independiente de la arquitectura)

Para instalar el paquete recién generado, ejecute el siguiente comando
sudo dpkg -i oracle-java8*.deb

Ahora deberíamos tener más de una versión de Java, para ver las versiones disponibles en nuestro sistema, ejecute el siguiente comando
$ sudo update-java-alternatives -l
java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64 oracle-java8-jdk-amd64 318 /usr/lib/jvm/oracle-java8-jdk-amd64

Para asignar como predeterminada la versión Java de Oracle (en 64 bits), ejecute el siguiente comando (para 32 bits reemplace "jdk-8-oracle-x64" por el que corresponda según la salida del comando anterior)
$ sudo update-java-alternatives -s oracle-java8-jdk-amd64

Otra forma de seleccionar la versión a predeterminar es por medio del siguiente comando (debe ingresar el número que corresponde a la versión de Java que desea asignar).
sudo update-alternatives --config java
Existen 2 opciones para la alternativa java (que provee /usr/bin/java). Selección Ruta Prioridad Estado ------------------------------------------------------------ 0 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 modo automático 1 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 modo manual * 2 /usr/lib/jvm/oracle-java8-jdk-amd64/jre/bin/java 318 modo manual Pulse para mantener el valor por omisión [*] o pulse un número de selección: 1

Finalmente comprobamos que la versión de Java de Oracle se encuentra correctamente asignada, con el siguiente comando
$ java -version
openjdk version "1.8.0_141" OpenJDK Runtime Environment (build 1.8.0_141-8u141-b15-1~deb9u1-b15) OpenJDK 64-Bit Server VM (build 25.141-b15, mixed mode)

Mizaq's Blog

Entradas populares