miércoles, 30 de diciembre de 2015

Instalar el Java 8u65 de Oracle en Debian Jessie


En Debian Jessie 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
java version "1.7.0_91" OpenJDK Runtime Environment (IcedTea 2.6.3) (7u91-2.6.3-1~deb8u1) OpenJDK 64-Bit Server VM (build 24.91-b01, 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/8u65-b17/jdk-8u65-linux-i586.tar.gz"

Para crear el paquete .deb, ejecute el siguiente comando
$ fakeroot make-jpkg jdk-8u65-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+update20 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/8u65-b17/jdk-8u65-linux-x64.tar.gz"

Para crear el paquete .deb, ejecute el siguiente comando
$ fakeroot make-jpkg jdk-8u65-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+update20 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.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64 jdk-8-oracle-x64 318 /usr/lib/jvm/jdk-8-oracle-x64

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 jdk-8-oracle-x64

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-6-openjdk-i386/jre/bin/java 1061 modo automático 1 /usr/lib/jvm/j2sdk1.8-oracle/jre/bin/java 319 modo manual 2 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 1061 modo manual Pulse para mantener el valor por omisión [*] o pulse un número de selección: 1

Es probable que algunos programas busquen a Java en la ruta donde solía instalarse la versión "sun-java", para evitar inconvenientes vamos a crear un par de enlaces simbólicos, ejecutando los siguientes comandos
$ sudo ln -s /usr/lib/jvm/j2sdk1.8-oracle/ /usr/lib/jvm/java-6-sun $ sudo ln -s /usr/lib/jvm/j2sdk1.8-oracle/ /usr/lib/jvm/java-7-sun $ sudo ln -s /usr/lib/jvm/j2sdk1.8-oracle/ /usr/lib/jvm/java-8-oracle

Finalmente comprobamos que la versión de Java de Oracle se encuentra correctamente asignada, con el siguiente comando
$ java -version
java version "1.8.0_20" Java(TM) SE Runtime Environment (build 1.8.0_20-b26) Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)

2 comentarios:

  1. Excelente guía, hace un tiempo la use para instalar java y ahora la use otra vez para actualizarlo al 8, muchas gracias ah sido una salvada increíble porque la verdad lo intente por mi cuenta y no lo lograba, como nota el primer punto hace referencia a una descarga que estaba cuando la guía fue creada pero ya hay versiones mas recientes y es solo de cambiar al que tengan que descargar y usar la versión que descargamos con los mismos pasos de la guía.
    Nuevamente muchas gracias.

    ResponderEliminar
    Respuestas
    1. Gracias por su comentario. Efectivamente hay versiones más recientes, lamentablemente Oracle nunca ha habilitado un enlace dinámico al "latest release", como si lo hacen otros fabricantes.

      Lo usuarios con conocimientos suficientes para adaptar esta guía a una nueva versión, pueden descargar por su cuenta la versión del JDK más reciente, en el siguiente enlace:
      Java SE Development Kit 8 Downloads

      Por mi parte, he optado por publicar una actualización del articulo de vez en cuando. Justamente hoy publiqué este:
      JDK 8u144 de Oracle en Debian Stretch.

      Eliminar

Gracias por dejar tu comentario, por favor sea respetuoso...

Mizaq's Blog

Entradas populares