lunes, 4 de febrero de 2013

Java-Gnome en Fedora 18

Las librerías Java-Gnome son un una interfaz para poder usar las librerías básicas del entorno GNOME desde el lenguaje de programación Java.

Si bien el java ya posee nativamente unas librerías para la creación de interfaces gráficas, las aplicaciones realizadas con Java-gnome tienen de inmediato el look nativo de las aplicaciones de GNOME y mejor integración al escritorio.

Como buenas librerías, los tutoriales sobre su uso son muy abundantes.

Cosa que *no* se puede decir sobre su instalación y configuración, en especial sobre la version mas reciente disponible, que a la fecha de esta entrada es la 4.1.2.

Con el fin de ayudar a quienes quieran hacer uso de estas librerías, aquí presento un pequeño tutorial en como instalarlas en Fedora 18, como darlas de alta en proyectos con el entorno Eclipse y como corregir un error me ocurrió al instalarlas.

Nota:
El sistema en que estoy haciendo el tutorial es de 64 bits, razon por la cual las rutas indicadas estan en /usr/lib64/ no se si el error que aqui menciono ocurra en 32 bits, pero si es el caso es posible que la solución sea muy similar.



Instalación en Fedora 18

Figura 1 - Instalación

Como muestra la figura uno solo basta el seleccionar los paquetes java-gnome y java-gnome-javadoc, el segundo es opcional pero muy recomendable pues es la documentación oficial, solo necesita pulsar aplicar cambios y listo tendra las librerías listas para usar.

Usando Java-GNOME con Eclipse.

Ahora es momento de mostrar algo que, si bien es sencillo, es critico en el uso de las librerias, como declararlas en un proyecto de Eclipse.
Comenzaremos iniciando el entorno Eclipse y creando un nuevo proyecto, esto abrira un dialogo como el de la figura 2.

Figura 2: Proyecto de Eclipse.
En este ejemplo en particular el nombre del proyecto sera "ExamplePressMe", ya que ponga el nombre vaya a la pestaña "Bibliotecas" como muestra la Figura 3.

Figura 3: Bibliotecas.
Presione el boton "Añadir JAR externos..." y agrege el archivo "/usr/lib64/java-gnome/gtk-4.1.jar", ahora presione "Finalizar" y tendra el proyecto iniciado, notara un ! rojo en el nombre del proyecto como muestra la figura 4.

Figura 4: Proyecto con Java-GNOME

Ese ! rojo es la primera indicación de un problema que tiene, al momento de hacer esta entrada, la instalación del java-GNOME en Fedora 18, para hacerlo mas obvio agreguemos una clase al proyecto, de nuevo se asumira que ya se conoce el procedimiento y solo se indicaran los valores para el paquete y nombre de clase,que para este ejemplo seran ExamplePressMe y el paquete sera button.

El código que usaremos como ejemplo es parte de la documentación oficial de java-GNOME y se encuentra aqui: http://java-gnome.sourceforge.net/doc/examples/button/ExamplePressMe.html

Solo copielo directamente a la nueva clase, notara casi de inmediato una gran cantidad de errores, como muestra la Figura 5

Figura 5: Código

Esto es bastante desconcertarte y se debe muy posiblemente a un error al instalar las librerías, he de notar de usar gtk.jar causa también el mismo error.

Corrigiendo el problema de instalación

Con ayuda de Nautilus vaya a "/usr/lib64/java-gnome" vera algo como la figura 6
Figura 6: El Error.

Seguro las X cerca de los iconos de los .jar le haran sospechar que algo anda mal y tiene toda la razon.

El problema es, en forma simple, que el archivo gtk-4.1.jar no puede ser accedido de ninguna forma por usuarios que no sean el root, lo que es un problema para una librería que debe ser accedida tanto por el IDE Eclipse como por las aplicaciones escritas en este.

Poniendose mas técnicos el problema es la falta de permiso de lectura para el resto de los usuarios, como se ve en la Figura 7.
Figura 7: Error visto desde el terminal.
Por fortuna la solución es muy sencilla, siempre y cuando tenga acceso a la cuenta del root o pueda solicitar la ayuda del administrador del sistema, como root use los comandos:

chmod a+r gtk-4.1.jar
chmod a+r gtk.jar

Estos daran a todos los usuarios del sistema permisos de lectura sobre la libreria.
Ahora regrese al Eclipse y vaya a las propiedades del proyecto, en especifico a la pestaña Bibliotecas como muestra la Figura 8.

Figura 8: Bibliotecas del proyecto.
Simplemente remueva la librería gtk.jar (o gtk4.1.jar) con el botón borrar y vuela a agregarla con el botón "Añadir JAR externos..", la ruta de la librería es "/usr/lib64/java-gnome/gtk-4.1.jar" hecho esto de en "Aceptar" y listo, deveria ver algo como la figura 9

 
Figura 9: Java-GNOME funcionando adecuadamente
Los errores ya no aparecen, puesto que Eclipse ya pudo acceder correctamente al archivo .jar, ahora solo presione ejecutar (ya sea en el menú ejecutar o con el boton verde) y correra su primera aplicacion en java-GNOME.

Figura 10: Primera aplicación.
Espero que esto les halla sido de utilidad y nos vemos en la próxima entrada :).