Instalar Java SDK en Linux con Java GNU
Instalar Java con GNU/Linux CentOS
Voy a comentar un poco sobre ¿Cuál es el problema entre Redhat Enterprise, CentOS o Fedora Core con Sun SDK?
Cualquiera del medio de la informática sabe que Sun Microsystems realiza a menudo nuevas versiones de la máquina virtual, del código JDK, la última versión al hacer este hilo es la 1.6.0_07-fsc que podemos bajar desde: http://java.sun.com/javase/downloads/index.jsp
Ahora bien las distribuciones de Linux Redhat, CentOS o Fedora Core vienen de forma predeterminada con GNU JAVA, está es parte de la popular suite del compilador GNU C que incluye soporte para otros lenguajes de programación como Fortran. No obstante hoy en día GNU JAVA soporta la mayoría de las opciones de Java Sun 1.4 y en muchos casos puede ser incrementada con paquetes de código abierto que permiten que tenga la misma funcionalidad que brinda JDK de Sun. Para obtener más información de Compilador GNU Java se puede visitar este sitio: http://gcc.gnu.org/java/
Recientemente Sun anunció que es legal redistribuir su kit de desarrollo Java, sin embargo, es poco probable que sea una parte de Fedora, CentOS o Redhat, la razón de esto es que Sun Java Development Kit no está proporcionado con el código fuente, mientras que Fedora Core Linux sólo ofrece paquetes que son de código abierto.
En la mayoría de los casos no debemos tener problemas en utilizar el JAVA GNU, pero existen proyectos de código abierto que necesitan Java Development Kit para trabajar con JAVA GNU. Esto ocurre especialmente por la necesidad de tener los últimos estándares y opciones que brinda Java SDK de Sun.
Bajo está situación necesitamos instalar JDK de Java SUN pero sin destrozar el Java GNU que se encuentra en el sistema operativo. Pero en cualquier caso NO DEBE BORRAR Java GNU del Sistema o simplemente coloque SDK de Sun en un directorio tipo /opt y cambie la variable $JAVA_HOME y $CLASSPATH. Pero afortunadamente existe una excelente solución utilizando el paquete alternatives que viene en el sistema operativo.
Convertir SDK en predeterminado
Ingresando como usuario root en el sistema se puede descargar desde el sitio de Sun la última versión de JDK, se debe seleccionar la plataforma Java 2, edición estándar (J2SE) y la última versión disponible. Usted debe descargar el archivo con extensión .rpm.bin.
A continuación se debe obtener las llaves del repositorio de JPackage:
# rpm –import http://jpackage.org/jpackage.asc
Instalar el repositorio de JPackage para que pueda ser utilizado con YUM:
cd /etc/yum.repos.d
wget http://jpackage.org/jpackage.repo
Nota: en el caso de no funcionar el comando wget, debe instalarlo con: # yum install wget
Esto hará que se descargue el archivo jpackage.repo como un nuevo respositorio de paquetes, de forma predeterminada se encuentra habilitado, en lo personal lo deshabilito editando el archivo con
# vim /etc/yum.repos.d/jpackage.repo y cambiando (s) enabled=1 a enabled=0 .
No quiero correr el riesgo de la situación cuando como consecuencia de una dependencia, los nuevos paquetes de Java puede ser instalado en mi máquina sin mi conocimiento durante las actualizaciones que se ejecutan automáticamente por la noche.
No obstante siempre puede ser habilitado en Yum el canal de actualización agregando la siguiente línea:
--enablerepo=jpackage-generic --enablerepo=jpackage-generic-nonfree
Ahora debemos verificar si algunos paquetes Java GNU están instalados en el sistema y ver si existe simetría entre GNU y Java SDK de SUN para que no exista confusión con alternatives. #yum list available ‘*gcj*’
Cuando la lista muestra paquetes (GNU)que no están instalados se deben instalar los mismos de la siguiente forma:
#yum install paquete1 paquete2 …
Cuando haya descargado el archivo jdk-6u7-linux-i586-rpm.bin
# chmod +x jdk-6u7-linux-i586-rpm.bin
#./ jdk-6u7-linux-i586-rpm.bin
Con esto se inicia la instalación de Java SDK, desafortunadamente se instalan en diferentes ubicaciones. Una vez que halla terminado la instalación usted verá el directorio /usr/java/jdk1.6.0_07 con los archivos JDK. Si por alguna razón desea desinstalar Java SDK debe utilizar el comando: # rpm -e jdk1.6.0_07-fsc
Ahora usted está listo para utilizar la compatibilidad de SUN SDK desde el repositorio de JPackage.org
#yum –-enablerepo=jpackage-generic-nonfree install java-1.6.0-sun-compat
Esto tiene la function de crear una estructura de links en los directorios /etc/alternatives y en /usr/lib/jvm a los otros directorios donde reside Java SDK /usr/java/jdk1.6.0_07
Para verificar los archivos afectados se puede verificar: #rpm -q -l java-1.5.0-sun-compat
Ahora se debe verificar si efectivamente está todo correcto con el siguiente comando: # java -version
Si usted obtiene:
java version «1.4.2»
gij (GNU libgcj) version 4.1.1 20060525 (Red Hat 4.1.1-1)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
O similar, algo está mal. Y si usted obtiene:
java version «1.5.0_09»
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_09-b03)
Java HotSpot(TM) Client VM (build 1.5.0_09-b03, mixed mode, sharing)
Ahora al fin vamos a convertir SUN SDK como predeterminado. Para ello necesitamos utilizar:
# alternatives –config java
Y aparecerá algo similar ha:
There are 2 programs which provide ‘java’.
Selection Command
———————————————–
1 /usr/lib/jvm/jre-1.4.2-gcj/bin/java
*+ 2 /usr/lib/jvm/jre-1.6.0-sun/bin/java
Enter to keep the current selection[+], or type selection number:
Aquí se debe tipiar o elegir 2 y presionar enter para activar Java SDK.
En el caso de necesitar el JAVA_HOME, la ruta es:
JAVA_HOME=/usr/lib/jvm/java
export JAVA_HOME
Comments (2)
esta linea no funcionaba y la arregle «#yum –enablerepo=jpackage-generic-nonfree install java-1.6.0-sun-compat»
asi debe quedar
#yum –-enablerepo=jpackage-generic-nonfree install java-1.6.0-sun-compat
Hola Admin de este blog. Muy piola que hayas compartido esto, estaba buscando como instalar JDK de SUN y me doy que existe un Java de GNU…Muchas Gracias, todo funciona =). Lo corregido en el primer comentario, eso si no lo utulicé! Saludos. Thank you.