lunes, 17 de febrero de 2020

Configuración de entorno de desarrollo para Java ME en Ubuntu

¡Ya es hora de levantar al bello durmiente! jaja... después de varios años sin actividad, retomo mi viejo blog para compartir algunos aspectos de mi experiencia que puedan ser de utilidad para algunos jóvenes "entusiastas de la tecnología informática".

Como parte del contenido del curso de programación en la universidad, se nos pide que configuremos un entorno de desarrollo que incluya Java EE (para desarrollo web con jsp y glassfish) y, además, Java ME, para programar Midlets.

Hay suficiente información en la red  sobre lo que se necesita para configurar exitosamente Java ME y Netbeans para programar Midlets, pero funcionales para Windows; sin embargo, para configurar esto en Linux no hay mucha ayuda (al menos no en un solo lugar, y menos en español).

En mi caso, como fanático de Ubuntu, quise poder armar mi entorno en este sistema operativo, y creo que he logrado configurarlo bien (al menos es funcional con un "Hola mundo").

Ahora bien, como es mi estilo, no voy a explicar un paso a paso de cómo instalar Netbeans o cómo instalar el Java ME o incluso el JDK porque esa información se encuentra en las respectivas páginas de estas herramientas; lo que sí les voy a compartir es lo que me funcionó después de semanas de probar e investigar para poder armar un entorno para programación con Java ME en Ubuntu.

 

Software utilizado y sus versiones.

 

El software que me funcionó a la hora de armar este entorno, es el siguiente:
  • Netbeans 8.2: Así es, la versión 8 de Netbeans hace el truco. Probé con el Apache Netbeans 11 y no me funcionó, aunque quizás me aventure a ver si me funciona más adelante.
  • Open JDK 8 32 bits: Efectivamente, después de investigar un poco, descubrí que el JDK 8 tiene las herramientas necesarias para desarrollar con Java ME, y que después de la versión 11, algunas ya no se toman en cuenta. Es importante que sea la versión de 32 bits, porque con la de 64 bits simplemente no van a poder hacer un build exitoso. Si tienen un Ubuntu de 64 bits como yo, se debe habilitar el entorno de 32 bits por medio de apt; ahora bien, no es necesario que solo tengan la versión 8, en mi caso también instalé la versión 14; pero, primero instalé la versión 8 y la dejé como el JDK predeterminado para Netbeans.
  • Java ME SDK 8.3: ¿Y por qué no la 3.4 que es la que les funciona bien a todos según la mayoría de los tutoriales en la red? pues sencillo, porque la versión 3.4 solo tiene instalador para Windows. Créanme, intenté instalar el entorno con Wine pero no me funcionó bien. Java ME nos es útil para poder utilizar los plugins de Netbeans y poder tener herramientas de desarrollo gráficas, y lo más relevante para el caso: tiene instalador para Linux.
  • Sun Wireless Kit 2.5.2: Este amiguito nos ayuda con algo muy importante: El entorno CLDC que se requiere para poder, primero crear el proyecto de Java ME, y luego, probar nuestras aplicaciones mediante un emulador. Este es quizás el eslabón perdido para muchos. Al configurar todo el entorno, nos encontraremos con un pequeño problema: Netbeans, por alguna razón que aún desconozco, no puede lanzar el emulador al presionar el botón "Run", sin embargo, encontré la manera de correrlo desde consola de comandos, lo cual para mí, ya es suficientemente funcional.
Finalmente, les dejo unas imagenes de mi netbeans con el modo gráfico del midlet y del emulador corriendo mi "¡Hola Programadores!".


Versión de Java:
Noten que la JVM dice "OpenJDK Server VM", y no dice que sea "64-bit" como en la mayoría de los casos. Esto es porque tengo instalada la JVM de 32 bit; con la de 64 bit, el proyecto simplemente no compilará y no se armará el ejecutable.



Proyecto demostración:
Cambiando el "Hola mundo" por default a "Hola programadores" en modo gráfico.




Corriendo el proyecto en el emulador:
Por medio de consola de comandos, corremos el emulador por medio del script "emulator" ubicado dentro de la carpeta donde instalamos el Sun Wireless Toolkit, con los siguientes parámetros: -Xdevice que es el skin del dispositivo a emular, en este caso elegimos el MediaControlSkin; -Xdescriptor es el archivo .jad armado al darle build al proyecto. Este debe estar en la carpeta del proyecto, en una carpeta denominada "dist".





Espero esta información les sea de utilidad. ¡Pásenla bien