jueves, 11 de agosto de 2016

Instalar Oracle JDK en openSuse Leap 42.2 y Tumbleweed.



Dentro del mundo GNU/Linux y de los desarrolladores, propiamente, el pack de desarrollo de Java es una pieza muy importante dentro del sistema de trabajo. 
En el mundo linux tenemos nuestra versión opensource del mismo, el OpenJDK, pero, tristemente se encuentra lejos (muy) del JDK oficial de Oracle. Tanto IDE's de propósito general como Eclipse o Netbeans como los de propósito particular como Android Studio dan muchos problemas cuando se está utilizando la versión abierta de este poderoso kit, problemas que en la mayoría de las veces resulta pŕactiamente imposible solucionar y que nos retrasan el trabajo.

La solución para este pequeño gran problema pasa por usar la versión oficial (y de código privativo) de JDK, pero para los que somos usuarios de openSuse resulta que no es tan sencillo instalarlo y configurarlo como en Fedora o Arch, por poner un ejemplo. Buscando por la web me topé con guías y soluciones que realmente no lograban solucionar el problema y la guía oficial que aparece en la wiki de suse me resultó un lío totalmente engorroso, así que sin más aquí tienes la manera de conseguirlo.


DESINSTALANDO OPENJDK.

El primer paso y el más importante de todos, borrar de nuestro sistema el openJDK pero no solo eso, hay un detalle. Si nosotros simplemente borramos el JDK la próxima vez que hagamos un "zypper inr" (install new recommends) volverá a aparecer. Para evitar que esto pase vamos a ir a Yast2, en la sección de Instalar/desinstalar software, buscamos "jdk" y nos aparecerá tanto el openJDK que tenemos instalado como todas las versiones disponibles, así que vamos a proceder a marcar todas como "tabú" para que no se instalen nunca. 



BAJAR E INSTALAR ORACLE JDK

Para el paso siguiente procederemos a descargar de la página oficial de ORACLE (click aquí) y descargar la versión más reciente, aceptando previamente los términos y condiciones. Para efectos de este tutorial vamos a usar la versión 8u102 (aunque en la imagen aparece 8u91).



Una vez descargado, procederemos a instalarlo. Para ello nos vamos a abrir una terminal y nos dirigiremos a la carpeta donde se aloja nuestro archivo. Para este caso vamos a suponer que está en la carpeta típica "Descargas", seguimos los siguientes pasos:

$: cd Descargas

$ sudo rpm -ivh jdk-8u102-linux-x64.rpm


CONFIGURANDO JDK

Aquí viene el último paso y que a mi, en lo personal, me parece complicado de la manera que aparece en la documentación de la distro, pero aquí les presento una forma más sencilla. Simplemente copiamos y pegamos en terminal como super usuario los siguientes comando de uno en uno (sin las comillas)
NOTA: Si cuando estés siguiendo estos pasos ya hay una versión más actual solo debes sustituir por el número en curso, por ejemplo /jdk1.8.0_105 suponiendo que sea la versión en curso.

"update-alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_102/bin/java 1551"

"update-alternatives --install /usr/bin/javadoc javadoc /usr/java/jdk1.8.0_102/bin/javadoc 1551"

"update-alternatives --install /usr/bin/jar jar /usr/java/jdk1.8.0_102/bin/jar 1551"

"update-alternatives --install /usr/bin/javap javap /usr/java/jdk1.8.0_102/bin/javap 1551"

"update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.8.0_102/bin/javac 1551"

"update-alternatives --install /usr/bin/javaws javaws /usr/java/jdk1.8.0_102/bin/javaws 1551"

"update-alternatives --install /usr/bin/javah javah /usr/java/jdk1.8.0_102/bin/javah 1551"

"update-alternatives --install /usr/bin/jarsigner jarsigner /usr/java/jdk1.8.0_102/bin/jarsigner 1551"

Una vez terminado, vamos a proceder a declara la variable JAVA_HOME a nuestro nuevo JDK, para ello abrimos el archivo .bashrc en la terminal y pegamos lo siguiente (pueden usar vim, nano, etc, lo que prefiera):

export JAVA_HOME=/usr/java/jdk1.8.0_102

Guardamos los cambio y salimos, y para finalizar:

$: source .bashrc

Con esto ya tendremos instalado y configurado nuestro JDK de Oracle, con lo que nos olvidamos de toda la lata innecesaria que nos da el openJDK. Para comprobar que todo a resultado con exito tecleamos

$: java -version
$: javac -version

Y debe darles una salida como la siguiente



Espero les sea de utilidad y si es así se agradece mucho el compartir. 
Esta pequeña guía es gracias al siguiente blog que es donde encontré la solución aunque con una versión ya antigual del JDK y donde les falta explicar lo de bloquear el openJDK, aún así puedes ver el post (en inglés) AQUÍ.