domingo, 3 de marzo de 2013

Instalar Oracle Java 7 en Ubuntu 12.04

Instalar Oracle Java 7 en Ubuntu 12.04
Algo que me pareció importante compartir es como podemos tener instalado el Oracla Java 7 en una distribución de GNU/Linux, para este ejemplo se utilizará Ubuntu 12.04, ya que normalmente las distribuciones como esta utiliza el OpenJDK, pero, y si deseo la versión de Oracle, qué hago, cómo lo instalo, está en los repositorios oficiales, es tal vez un archivo *.deb que se puede instalar fácilmente?, todas estas dudas surgieron en algunos compañeros cuando hicimos unos proyectos y para beneficio de todos, la respuesta será publicada en este post.
OpenJDK y el plugin IcedTea son mantenidos por la Comunidad y reciben actualizaciones periódicas. funciona bien para la mayoría de los propósitos,
Lo más probable es que no necesitemos Oracle Java en absoluto, pero podemos vernos en la necesidad de instalarlo por X razón y esto es un problema, ya que fue retirado de los repositorios "Partner" por la revocación de la anterior licencia.

Explicaré un poco más de OpenJDK, ya que hay cierta confusión con los tipos de paquetes y sus siglas JRE y JDK y de paso nos servirá para tener las cosas claras en la instalación de Oracle Java, incluso puedes ampliar sobre este tema en una publicación anterior de mi blog:

En los repositorios oficiales de Ubuntu tenemos 2 versiones de Java, la 6 y la 7, además del plugin "icedtea":

Y aquí es donde se produce la confusión, ya que cada versión dispone de 2 paquetes:  JRE & JDK
  • Para la versión 6 tenemos 2 paquetes: "openjdk-6-jre" y "openjdk-6-jdk"
  • Para la versión 7 tenemos 2 paquetes: "openjdk-7-jre" y "openjdk-7-jdk"
Para un mejor entendimiento, especifico los distintos paquetes de Java: 
  • JDK(Java Development Kit)->Kit de desarrollo Java, esta es la versión para los desarrolladores. Incluye el compilador de Java (javac) que mencioné como usar en entradas anteriores, JRE y JVM.
  • JRE(Java Runtime Environment)->Entorno de ejecución Java, esta es la versión para los usuarios normales que solo quieren poder ejecutar aplicaciones Java en su equipo, posee un conjunto de utilidades de Java, que actúa como un "intermediario" entre el sistema operativo y Java., también incluye la JVM.
  • JVM(Java Virtual Machine)->Máquina Virtual de Java, es un Programa que ejecuta el código Java previamente compilado (bytecode) mientras que las librerías de clase estándar son las que implementan el API de Java. Ambas JVM y API deben ser consistentes entre sí, de ahí que sean distribuidas de modo conjunto.
La mayoría de los usuarios solo deben de instalar la JRE, y los desarrolladores deberán instalar la JDK, asegurándose de tener la misma versión de java y javac, también se listan a continuación algunos comandos que pueden ser muy útiles para controlar Java:

Mostrar la versión del entorno de Java "Runtime" (JRE):
java -version

Mostrar la versión del compilador de Java "Javac" (JDK):
javac -version

Permite seleccionar la versión de Java Runtime (JRE), si tenemos varias (no del compilador "javac")
sudo /usr/sbin/update-alternatives --config java

Terminada la explicación de OpenJDK vamos a empezar con la Instalación de Oracle Java:

Añadimos los repositorios con:
sudo add-apt-repository ppa:webupd8team/java

Luego los actualizamos con:
sudo apt-get update

Con este comando instalamos Oracle Java 7:
sudo apt-get install oracle-java7-installer

Para comprobar que la instalación ha tenido éxito, ejecuta en una terminal el comando para saber la versión de Java que utiliza tu Ubuntu:
java -version

La terminal te debe devolver algo parecido a esto (el último número de la versión (_12), puede variar):
java version "1.7.0_12"
Java(TM) SE Runtime Environment (build 1.7.0_04-b20)
Java HotSpot(TM) Server VM (build 23.0-b21, mixed mode)

Si tienes otro Java instalado puede ser que te responda con esa versión, para seleccionar la versión de Oracle Java, ejecuta:
sudo update-alternatives --config java

Y seleccionas la opción que necesites, Si no funciona, puedes desinstalarlo con:
sudo apt-get remove oracle-java7-installer

Y quitar los repositorios con estos 2 comandos:
sudo apt-get install ppa-purge
sudo ppa-purge ppa:webupd8team/java

En caso de que el método anterior no te haya funcionado, también podemos hacerlo de forma manual, para lo cual debemos seguir los siguientes pasos, empieza por descargar el Oracle Java desde su sitio Oficial, puede ser el JDK o JRE, abajo está la forma de instalar ambos.

Instalación de JRE para Usuarios Finales

Una vez seleccionada la página de descarga de JRE, activamos la casilla para aceptar la licencia y seleccionamos el paquete para Linux ".tar.gz" de 32 bits "jre-[version]-linux-i586.tar.gz" o 64 bits "jre-[version]-linux-x64.tar.gz", según sea la arquitectura de nuestro Ubuntu. En este ejemplo voy a instalar:  jre-7u12-linux-x64.tar.gz (versión 7u12 para 64 bits)

El número de versión "[versión]" puede variar dependiendo del momento en que leas el post.
Los comandos a continuación deben de ser modificados con el nombre del archivo exacto que tú te hayas descargado, ya que puede variar la versión y la arquitectura.
Una vez descargado en nuestra carpeta personal (es decir en "/home/miUsuario/", no en la carpeta Descargas), lo descomprimimos con el comando:
tar -xvf jre-7u12-linux-x64.tar.gz

Si no lo tenemos, creamos un directorio "/jvm/jdk1.7.0" en "/usr/lib", donde moveremos la carpeta descomprimida:
sudo mkdir -p /usr/lib/jvm/jre1.7.0

Movemos la carpeta descomprimida al directorio creado:
sudo mv jre1.7.0_12/* /usr/lib/jvm/jre1.7.0/

Ejecutamos el siguiente comando para java:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jre1.7.0/bin/java 0

Si hemos instalado OpenJDK u otras versiones de Java (la 6), debemos decirle al sistema que utilice jdk1.7.0 de Oracle con el comando:
sudo update-alternatives --config java

La terminal nos responderá algo similar a esto:
Hay 3 opciones para la alternativa java (proporcionando /usr/bin/java).

Selección Ruta Prioridad Estado
------------------------------------------------------------
0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 modo automático
1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 modo manual
2 /usr/lib/jvm/java-6-sun/jre/bin/java 63 modo manual
* 3 /usr/lib/jvm/jre1.7.0/jre/bin/java 12 modo manual

Presione Entrar para mantener la opción actual [*], o escriba el número de la selección:

Seleccionamos la opción que contenga "jre1.7.0". En el ejemplo es la opción 3, escribimos 3 y presionamos Enter.

Instalar el plugin, para el navegador Mozilla Firefox:
En primer lugar, debemos de eliminar anteriores plugin de Java:
rm -f ~/.mozilla/plugins/libnpjp2.so ~/.mozilla/plugins/libjavaplugin_oji.so
sudo rm -f /usr/lib/firefox/plugins/libnpjp2.so /usr/lib/firefox/plugins/libjavaplugin_oji.so

Creamos el directorio para los plugins, si no lo tenemos:
mkdir -p ~/.mozilla/plugins

Ahora, vamos a crear un enlace simbólico para el nuevo Java en el directorio de plugins de Mozilla:
- Para 64 bit:
ln -s /usr/lib/jvm/jdk1.7.0/jre/lib/amd64/libnpjp2.so ~/.mozilla/plugins/

- Para 32 bit, sería:
ln -s /usr/lib/jvm/jre1.7.0/lib/i386/libnpjp2.so ~/.mozilla/plugins/

Instalación de JDK para Desarrolladores

Una vez seleccionada la página de descarga de JDK, activamos la casilla para aceptar la licencia y seleccionamos el paquete para Linux ".tar.gz" de 32 bits "jdk-[version]-linux-i586.tar.gz" o 64 bits "jdk-[version]-linux-x64.tar.gz", según sea la arquitectura de nuestro Ubuntu. En este ejemplo voy a instalar: jdk-7u12-linux-x64.tar.gz (versión 7u12 para 64 bits)

El número de versión "[versión]" puede variar de acuerdo al tiempo en que leas este post.
Los comandos a continuación deben de ser modificados con el nombre del archivo exacto que tú te hayas descargado, ya que puede variar la versión y la arquitectura.
Una vez descargado en nuestra carpeta personal (es decir "/home/miUsuario/", no en la carpeta Descargas), lo descomprimimos con el comando:
tar -xvf jdk-7u12-linux-x64.tar.gz

Si no lo tenemos, creamos un directorio "/jvm/jdk1.7.0" en "/usr/lib", donde moveremos la carpeta descomprimida:
sudo mkdir -p /usr/lib/jvm/jdk1.7.0

Movemos la carpeta descomprimida al directorio creado:
sudo mv jdk1.7.0_12/* /usr/lib/jvm/jdk1.7.0/

Ejecutamos los siguientes comandos para java, javac (compilador) y javaws, respectivamente:
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.7.0/bin/javaws" 1

Si hemos instalado OpenJDK u otras versiones de Java (la 6), debemos decirle al sistema que utilice jdk1.7.0 de Oracle con el comando:
sudo update-alternatives --config java

La terminal nos dará como resultado algo similar a esto:
Hay 3 opciones para la alternativa java (proporcionando /usr/bin/java).

Selección Ruta Prioridad Estado
------------------------------------------------------------
0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 modo automático
1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 modo manual
2 /usr/lib/jvm/java-6-sun/jre/bin/java 63 modo manual
* 3 /usr/lib/jvm/jdk1.7.0/jre/bin/java 12 modo manual

Presione Entrar para mantener la opción actual [*], o escriba el número de la selección:

Seleccionamos la opción que contenga "jdk1.7.0". En este caso como es la 3, escribimos 3 y pulsamos Enter.

Instalar el plugin, para el navegador Mozilla Firefox:
En primer lugar, debemos de eliminar anteriores plugin de Java:
rm -f ~/.mozilla/plugins/libnpjp2.so ~/.mozilla/plugins/libjavaplugin_oji.so
sudo rm -f /usr/lib/firefox/plugins/libnpjp2.so /usr/lib/firefox/plugins/libjavaplugin_oji.so

Creamos el directorio para los plugins, si no lo tenemos:
mkdir -p ~/.mozilla/plugins

Ahora, vamos a crear un enlace simbólico para el nuevo Java en el directorio de plugins de Mozilla:
- Para 64 bit:
ln -s /usr/lib/jvm/jdk1.7.0/jre/lib/amd64/libnpjp2.so ~/.mozilla/plugins/

- Para 32 bit, sería:
ln -s /usr/lib/jvm/jdk1.7.0/jre/lib/i386/libnpjp2.so ~/.mozilla/plugins/

Y para finalizar podemos verificar la instalación desde la página de Oracle:
http://www.java.com/es/download/installed.jsp

2 comentarios:

  1. mi hermano este es el mejor tutorial que e visto.
    te felicito y muchas gracias por esta ayudadota.
    y todo lo de aqui si funciona solo no hay que desesperarse y leer una y otra vez hasta que le entiendas

    ResponderEliminar
    Respuestas
    1. Gracias por comentar y me alegra que te haya servido el blog. =)

      Eliminar