domingo, 12 de octubre de 2014

Instalar el Java 8u20 de Oracle en Debian Wheezy


Para Debian Wheezy 7.0 y en adelante, los paquetes sun-java-* (Java de Oracle) ya 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.6.0_27" OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1~deb7u1) OpenJDK Server VM (build 20.0-b12, 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

[SOLUCIONADO] make-jpkg no soporta Java 8 / [SOLVED] make-jpkg doesn't support Java 8
A partir de la versión de SDK 8, el script de instalación de "Java-Package" que viene con nuestro GNU/Linux Debian presenta el error "No matching plugin was found". Para solucionar este problema hay que editar el archivo "oracle-j2sdk.sh".

Para hacer más fácil para ustedes, he preparado un archivo listo para utilizar. Para descargarlo e instarlo donde se necesita, ejecute el siguiente comando
$ wget http://mizaqblog.com/downloads/scripts/sdk8/oracle-j2sdk.sh && sudo mv -f oracle-j2sdk.sh /usr/share/java-package/oracle-j2sdk.sh

El paquete que vamos a instalar se llama "oracle-j2sdk1.8" 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/8u20-b26/jdk-8u20-linux-i586.tar.gz"

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

Para crear el paquete .deb, ejecute el siguiente comando
$ fakeroot make-jpkg jdk-8u20-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-j2sdk1.8*.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
j2sdk1.8-oracle 319 /usr/lib/jvm/j2sdk1.8-oracle java-1.6.0-openjdk-i386 1061 /usr/lib/jvm/java-1.6.0-openjdk-i386

Para asignar como predeterminada la versión Java de Oracle, ejecute el siguiente comando
$ sudo update-java-alternatives -s j2sdk1.8-oracle

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)

No hay comentarios:

Publicar un comentario

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

Mizaq's Blog

Entradas populares