Comenzando con Java (2) - El IDE

martes, 16 de marzo de 2010

En la sección anterior de esta serie de Comenzando con Java vimos cómo comenzar apoyándonos en tutoriales y les dejé algunos videotutoriales muy buenos que me he encontrado en la red. Ahora toca seleccionar nuestro editor de desarrollo.

La selección de nuestro primer IDE (Integrated Development Environment, Entorno Integrado de Desarrollo) es muy importante pues nos ayudará a resolver problemas comunes, acelerar nuestro aprendizaje y adaptarnos poco a poco a una forma particular de trabajo.

Debemos seleccionar el IDE de acuerdo a nuestras necesidades, por ejemplo, si lo necesitamos solo para el uso académico, aprendizaje de ciertas herramientas y/o tecnologías del mundo Java, si lo necesitamos para uso profesional, ya que en ciertas empresas dicen al desarrollador cuál IDE usar, etc.

Como este tutorial lo he escrito para quienes aun están aprendiendo a programar en Java, les recomiendo usar un IDE
Lo que yo recomiendo es verificar que el IDE:

  • sea intuitivo
  • tenga resaltador de código
  • tenga depurador
  • tenga autocompletado (no indispensable si estás aprendiendo)

Aunque llegarás a usar otras herramientas muy prácticas y otras muy complejas conforme avances en tu aprendizaje.

Por ejemplo, yo aprendí usando un editor muy simple: TextPad, y también vi a compañeros aprendiendo con JPadPro.

Uno muy utilizado en la academia para la enseñanza de la programación en Java es BlueJ, la cual también recomiendo mucho.

También puedes aprender con uno más profesional como Netbeans (comentarios a parte) que es un IDE muy completo y ampliamente usado en entornos profesionales. Es gratuito y puedes descargarlo en su versión más ligera para comenzar a programar. También puede usar la versión Classic de Eclipse. Consulta sus páginas respectivas o la Wikipedia para leer más al respecto y decidir por un IDE.

Pero existen muchos más en el mundo Java, para todos los gustos, solo he comentado los más comunes.


Enlaces:
Netbeans (Wikipedia| descarga)
Eclipse (Wikipedia| descarga)
BlueJ (Wikipedia| descarga)
TextPad (Wikipedia)
JPadPro

"An instance of the program seems to be already running" en Netbeans

lunes, 8 de marzo de 2010

Actualmente estoy usando Netbeans 6.7.1 para desarrollar una aplicación Swing ya que me gusta el Matisse que viene con este IDE. Pero ya han sido varias ocasiones en las que la computadora se ha apagado abruptamente, lo que ha causado que Netbeans no se cierre correctamente; y después de reiniciar e intentar abrir nuevamente el IDE me muestra una ventana de alerta con el siguiente mensaje:

"An instance of the program seems to be already running with your user directory. Either a previous session of the program did not exit correctly, or another instance of the program is running on a different computer and using the same user directory.

"If another session of the program is running with the same user directory, please click Cancel to prevent the corruption of the user directory. If you are sure that no other instances of the program are running with your user directory, click OK to continue."

Para solucionar este problema debemos tener presente que Netbeans guarda distintas carpetas de configuración, estas son el Directorio de instalación, Directorio de usuario y Directorio de proyectos. Pues bien, para solucionar este problema en particular lo único que he hecho ha sido borrar el archivo lock que se encuentra en el directorio de usuario; en mi caso C:\Documents and Settings\Jorge Ruiz\.netbeans\6.7\lock

Las carpetas comentadas se crean durante la instalación de Netbeans y el usuario puede modificarlas, por lo tanto, es importante leer bien los diálogos antes de hacer clic en el botón Next de la instalación. Para más información sobre estas carpetas puedes leer el blog de soporte de Netbeans. Espero que la solución de mi caso les sirva...

Invocar programas ASM desde Java paso a paso

miércoles, 27 de enero de 2010

Hace ya varios meses envié un tutorial al portal de JavaHispano donde explicaba cómo hacer para invocar funciones escritas en lenguaje ensamblador desde Java. Y como ya pasaron más de tres meses desde entonces, ya puedo usarlo en mi blog :D.
Aquí les dejo el Contenido y las dos primeras partes para que se den una idea; también les dejo el código fuente y el documento PDF del tutorial.

Contenido

  1. Introducción
  2. ¿Cuándo usar JNI?
  3. Requerimientos de software
  4. Configuración del ambiente de trabajo
  5. La programación
  6. La ejecución
  7. Conclusión
  8. Referencias y lecturas

1. Introducción
En el sitio de java.net existe un pequeño tutorial titulado Invoking Assembly Language Programs from Java1 pero está en inglés y no es muy sencillo para algunos nuevos programadores Java o ensamblador. En java.net explican cómo funciona la invocación de un programa ASM desde Java y qué hacer para lograrlo, pero no explican cómo hacer cada paso. Por lo tanto me he dado a la tarea de facilitar la comprensión de estas técnicas para los hispanohablantes que dan sus primeros pasos con JNI; ya que conocer un poco del funcionamiento de JNI y la invocación de aplicaciones en ensamblador es fundamental cuando se tienen aplicaciones que necesiten operaciones que consuman mucho proceso del servidor y se necesite implementar un pequeño programa a bajo nivel para ejecutar tales operaciones, y de esta manera disminuir el tiempo de espera que a veces suele ser crítico.
También con JNI tenemos la capacidad de invocar funciones y procedimientos escritos en otros lenguajes, como C/C++ o en nuestro caso ASM, por ejemplo, cuando se tienen sistemas legados y se necesite utilizar alguna función del código legado será necesario desarrollar aplicaciones que puedan ejecutar estas funciones. Para más información de JNI y sus capacidades se puede consultar el manual para programadores disponible en el sitio de Sun2.
Cabe señalar que este no es un tutorial introductorio a JNI o al API, por lo tanto se limitará a mencionar solo algunos conceptos necesarios. De forma rápida, comenzaremos con determinar el software que usaremos y de dónde obtenerlo, pero no nos detendremos a aprender el funcionamiento de ellos. Posteriormente agregaremos algunas variables de entorno y comenzaremos con la programación. Para esto, se presentan los programas y cómo compilarlos, sin embargo estará disponible el código fuente usado en el tutorial. Al finalizar el tutorial el lector deberá ser capaz de cargar una librería DLL en cualquier aplicación Java y usar los procedimientos de cualquier librería nativa.

2. ¿Cuándo usar JNI?
En algunas ocasiones, a algunos desarrolladores les tocará encontrarse en situaciones en las que una aplicación hecha completamente en Java no cubrirá todos los requerimientos para tal. Algunos ejemplos de estas situaciones pueden ser:

  • Cuando a pesar de querer escribir toda la aplicación en Java para permitir la compatibilidad entre plataformas, exiten características de la plataforma que son necesarias para la aplicación y no son soportadas por la librería estándar de Java. Esto es referido como dependencia de la plataforma.
  • Cuando ya se tiene una librería escrita en algún otro lenguaje y se desea hacerla accesible a nuestro código Java, por ejemplo, al tener que trabajar con código legacy. en estos casos las librerías se cargan dentro del mismo proceso de la apliación por medio de JNI, aunque existen otros mecanismos más eficientes que funcionan en procesos separados.
  • Si se quiere implementar porciones de código en un lenguaje de bajo nivel como ensamblador para disminuir el tiempo de procesamiento. Por ejemplo, en aplicaciones que necesiten renderizar gráficos 3D que requieren más tiempo de procesamiento, habrá que escribir una librería para gráficos en lenguaje ensamblador para tener un mejor rendimiento3.
  • En casos en los que quiera cargar una librería nativa en un proceso existente para evitar el costo de iniciar un nuevo proceso y cargar la librería en el mismo4.
  • También será oportuno usar JNI cuando se quiera utilizar algunas funcionalidades de un programa Java desde un código nativo.

Documento Invocar programas ASM dese Java paso a paso
Código fuente
El tutorial en Javahispano