Parte 5: Ejecutar y Depurar

Cuando el programa de Java esté completado será hora de ejecutarlo y probarlo. Quizás aparezcan algunos "bugs" a la hora de ejecutarlo. Entonces será hora de depurar el programa. Afortunadamente, Eclipse proporciona ayuda a las tareas de ejecutar y depurar código.

Ejecutar
Para ejecutar un programa dentro de Eclipse hay que seleccionar "Run > Run..." del menú principal. Dentro de "Configurations" se almacenan diferentes configuraciones de ejecución. Hay cuatro tipos de configuraciones de ejecución: Java Applet (para applets web), Java Application (para programas normales de Java), JUnit (casos de prueba) y Run-Time Workbench (otras instancias de Eclipse que permiten probar nuevos módulos de Eclipse).

1

Así pues, para ejecutar un programa de Java normal debería seleccionarse "Java Application" y pulsar el botón "New" para crear una nueva configuración. Dentro de la pestaña "Main" hay que dar nombre a la nueva configuración seleccionar el proyecto que contiene la clase con el método main y seleccionar dicha clase. El método "main" es el punto de ejecución de un programa Java, y se representa como un pequeño icono de un hombre corriendo al lado del icono de la clase.

1

Si se desea pasar argumentos al método main (en la forma de "String[] args", no hay más que hacer clic en la solapa de "Arguments" y escribir esos argumentos separados por espacio dentro de la zona en blanco de "Program Arguments".

1

Finalmente, hacer clic en el botón "Run" lanzará la ejecución del programa seleccionado. Una forma más rápida de arrancar la ejecución del programa recientemente ejecutado es pulsar en el icono de un hombre corriendo que aparece en el menú principal. Pulsar la flecha próxima a este icono mostrará otras configuraciones de ejecución recientemente utilizadas.

Depurar
Aunque Java no es tan difícil de depurar como otros lenguajes de programación, también es perfectamente posible que surjan complejos problemas de ejecución. Eclipse da apoyo completo a la tare de depuración a través de su perspectiva "Debug" ("Window > Open Perspective > Debug" o seleccionando el icono del "bicho" en el margen izquierdo). Dentro de esta perspectiva de depuración, haciendo clic en el margen izquierdo del editor de código aparecerá un menú contextual. Seleccionando "Add/Remove Breakpoint" añadirá o quitará un punto de ruptura, mientras que "Toggle Breakpoint" cambiará el estado de activación del punto de ruptura. Los puntos de ruptura marcan líneas en que la ejecución del programa se detendrá de manera que sea posible comprobar el valor de las variables en ese instante, identificando así posibles errores.

1

Haciendo clic derecho en un punto de ruptura y seleccionando "Breakpoint Properties..." permitirá especificar opciones avanzadas del punto de ruptura. "Hit Count" especifica que la ejecución del programa se detendrá cuando se pase por el punto de ruptura el número especificado de veces. Las condiciones de activiación detendrán la ejecución cuando la condición sea cierta o bien cuando el valor de la condición cambie. Especificar una variable como una condición de activación y seleccionar "suspend when value of condition changes" es una forma de "detener la ejecución en el punto de ruptura cuando dicha variable sea modificada".

1

Las excepciones son uno de los síntomas más evidentes de errores de ejecución. Los "Java Exception Breakpoints" detienen la ejecución cuando salta una excepción del tipo seleccionado. Estos puntos de ruptura se activan haciendo clic en el icono "J!" de la vista de "Breakpoints" o desde el menú principal "Run". La ejecución puede detenerse cuando la excepción sea capturada, no capturada o ambas. Añadir siempre los puntos de ruptura de excepciones Java de "ArrayIndexOutOfBoundsException" (lanzada cuando el índice de una matriz se sale de sus dimensiones) y "NullPointerException" (lanzada cuando se intenta acceder a una referencia que apunta a null) es una práctica de depuración recomendada.

1

Si se desea que el programa se detenga en los puntos de ruptura definidos deberá ser ejecutado en modo depuración ("Run > Debug...". Tras detenerse en un punto de ruptura la ejecución del programa puede continuar de diversas maneras. Haciendo clic derecho en el editor de código dentro de la perspectiva de depuración aparecerá un menú contextual con estas opciones. "Run to line" reanuda la ejecución del programa hasta que se alcanza la línea en que está el cursor. "Step into selection" continuará la ejecución dentro del método seleccionado siempre y cuando el código fuente del método esté disponible. La ejecución también puede reanudarse mediante un clic derecho en la ventana de "Debug" y seleccionando las opciones adecuadas, o directamente pulsando los iconos de dicha ventana. "Step over" parará en la línea siguiente a la invocación de un método. "Resume" reanudará la ejecución normal del programa y sólo se interrumpirá en los puntos de ruptura si sus condiciones de activación se satisfacen.

1

La vista "Variables" proporciona información verdaderamente útil ya que muestra los valores que tienen actualmente las variables cuando la ejecución se detienen en un punto de ruptura.

1

La vista de "Debug" también es útil para observar diferentes procesos que están siendo ejecutados simultáneamente, como por ejemplo, hebras. Cuando el proceso de depuración ha terminado, los procesos mostrados en la ventana de depuración se muestran como "Finished" (pueden acabarse manualmente con "Clic derecho > Terminate". La información de ejecuciones previas puede elminarse realizando clic derecho sobre ella y seleccionando "Terminate and Remove" o "Terminate All" más "Remove All Terminated".

Gestión de Cambios
No es extraño cambiar código del programa y darse cuenta después de que la nueva versión funciona incluso aún peor que la primera versión. Ese es el motivo de que los programadores tengamos que guardar diferentes versiones del programa cada vez que introducimos un nuevo cambio. Sin embargo, esta práctica inevitable es normalmente tediosa y consume mucho tiempo. Afortunadamente, Eclipse proporciona un potente sistema de gestión de cambios y de control de versiones. Haciendo clic derecho en un archivo Java dentro del Package Explorer y selecionando "Replace With > Local History" permitirá reemplazar la versión actual por una versión previamente guardada. La hora y fecha de modificación se muestran junto con dos ventanas que destacan las diferencias existentes entre ambas versiones.

1

Seleccionando "Window > Preferences > Workbench > Local History" permitirá seleccionar cuantas versiones, megas y días almacenar. Así pues, se puede obtener un buen equilibrio personalizado entre seguridad y eficiencia.

1
Última modificación: jueves, 7 de junio de 2018, 07:39