Error java.lang.NoClassDefFoundError en Debian Etch

En una PC con Windows instalé NetBeans 6.5 y desarrollé una aplicación GUI muy sencilla en java.

Después intenté ejecutar esta aplicación en una PC con Debian Etch escribiendo desde consola:

java -jar nombre_aplicacion.jar

y aparecia el siguiente error:

Exception in thread “main” java.lang.NoClassDefFoundError: javax/swing/GroupLayo
ut$Group

Este error se debe a que está instalada la versión 5.0 del JRE (Java Runtime Environment) de Sun que viene en el paquete sun-java5-jre de Debian Etch y NetBeans 6.5 utiliza una versión más nueva.

La version 6 del JRE viene en el paquete sun-java6-jre que se encuentra en el repositorio de backports para Debian Etch http://packages.debian.org/etch-backports/sun-java6-jre

En mi post sobre instalar firebird 2.0 en Debian Etch explico como agregar este repositorio.

Ya que tenemos agregado el repositorio a nuestro archivo de fuentes (/etc/apt/sources.list) y hecho el respectivo apt-get update procedemos a desinstalar la versión 5.o del JRE

Para ver que paquetes de java tenemos instalados ejecutamos

dpkg -l |grep sun-java

En mi caso aparecen los siguientes paquetes

ii sun-java5-bin 1.5.0-14-1etch1 Sun Java(TM) Runtime Environment (JRE) 5.0 (
ii sun-java5-demo 1.5.0-14-1etch1 Sun Java(TM) Development Kit (JDK) 5.0 demos
ii sun-java5-jdk 1.5.0-14-1etch1 Sun Java(TM) Development Kit (JDK) 5.0
ii sun-java5-jre 1.5.0-14-1etch1 Sun Java(TM) Runtime Environment (JRE) 5.0 (

Esto es porque además del JRE también tengo instalado el kit para desarolladores JDK (Java Development Kit).

Para eliminar los paquetes ejecutamos

sudo apt-get –purge remove sun-java5-bin sun-java5-demo sun-java5-jdk sun-java5-jre

Leyendo lista de paquetes… Hecho
Creando árbol de dependencias… Hecho
Los siguientes paquetes se ELIMINARÁN:
sun-java5-bin* sun-java5-demo* sun-java5-jdk* sun-java5-jre*
0 actualizados, 0 se instalarán, 4 para eliminar y 38 no actualizados.
Necesito descargar 0B de archivos.
Se liberarán 114MB después de desempaquetar.
¿Desea continuar [S/n]?

Decimos que si y la desinstalación termina

La instalación de java en Debian normalmente crea algunos enlaces simbólicos, para ver si existen enlaces simbólicos para java ejecutamos

sudo update-alternatives –display java

En mi caso muestra
No hay alternativas para java.

Pero si se hubieran encontrado enlaces simbólicos habría que eliminarlos ejecutando

sudo update-alternatives –remove-all java

Después ejecutamos

sudo update-alternatives –display javac

En mi caso muestra
javac – el estado es manual.
el enlace apunta actualmente a /usr/lib/jvm/java-1.5.0-sun/bin/javac
No hay ninguna versión disponible.

Como en el caso anterior, para eliminar todos los enlaces simbólicos ejectuamos

sudo update-alternatives –remove-all javac

Nota: Los siguientes enlaces son útiles para conocer más sobre la administración de paquetes en Debian (instalación, desinstalación, saber el estatus de un paquete, etc.)

http://www.debian.org/doc/manuals/apt-howto/ch-search.es.html
http://www.debian.org/doc/manuals/quick-reference/ch-package.es.html

Ahora si procedemos a instalar el JRE 6 de Sun para lo cual ejecutamos

sudo apt-get install sun-java6-jre

Leyendo lista de paquetes… Hecho
Creando árbol de dependencias… Hecho
Se instalarán los siguientes paquetes extras:
sun-java6-bin
Paquetes sugeridos:
binfmt-support sun-java6-plugin ia32-sun-java6-plugin sun-java6-fonts ttf-baekmuk ttf-unfonts ttf-unfonts-core ttf-kochi-gothic ttf-sazanami-gothic
ttf-kochi-mincho ttf-sazanami-mincho ttf-arphic-uming
Paquetes recomendados
libnss-mdns gsfonts-x11
Se instalarán los siguientes paquetes NUEVOS:
sun-java6-bin sun-java6-jre
0 actualizados, 2 se instalarán, 0 para eliminar y 38 no actualizados.
Necesito descargar 33.6MB de archivos.
Se utilizarán 96.4MB de espacio de disco adicional después de desempaquetar.
¿Desea continuar [S/n]?

Decimos que si y aparece la siguiente pantalla

java6

Seleccionamos aceptar y ahora aparece la siguiente pantalla

java6_2

Después de aceptar los términos de la licencia la instalación termina

Seleccionando el paquete sun-java6-bin previamente no seleccionado.
Desempaquetando sun-java6-bin (de …/sun-java6-bin_6-07-3~bpo40+1_i386.deb) …
sun-dlj-v1-1 license has already been accepted
Configurando sun-java6-bin (6-07-3~bpo40+1) …

Configurando sun-java6-jre (6-07-3~bpo40+1) …

Si ejecutamos

dpkg -l |grep sun-java

Ahora nos muestra

ii sun-java6-bin 6-07-3~bpo40+1 Sun Java(TM) Runtime Environment (JRE) 6 (ar
ii sun-java6-jre 6-07-3~bpo40+1 Sun Java(TM) Runtime Environment (JRE) 6 (ar

Ahora ya podemos ejecutar nuestra aplicacion java que contiene una interfaz gráfica de usuario (GUI) sin problemas.

Etiquetas: , , , ,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: