JBuilder

JBuilder es un ambiente de desarrollo integrado (IDE) para Java. Un IDE es un programa que permite
 

Cómo cargar JBuilder

Para cargar JBuilder debes seguir los siguientes pasos:

Otra forma es Al momento de abrirse, JBuilder muestra el siguiente menú y barra de herramientas en la parte superior de la pantalla. Puedes encontrar los menús típicos (File, Edit, Search y Run). Los íconos de la barra de herramientas son "atajos" a opciones del menú.
Un proyecto

En JBuilder se trabaja con proyectos. Un proyecto es un conjunto de programas (clases) y recursos (imagenes, cuadros de dialogos, página html, etc). Por mientras, nuestros proyectos consistirán sólo en una programa (clase), y a medida que pase el curso vamos a agregar elementos más complejos.

Para crear nuestra primera aplicación, elige la opción new del comando File. Esto abrirá una nueva ventana que sirve para especificar qué quieres crear. Escoge proyecto (Project):

De inmediato JBuilder abrirá un "Wizard" para proyectos. Un Wizard (mago) es un programa que te asiste en la creación de nuevos elementos.

Debes indicar un directorio y un archivo que almacene la información del proyecto. Una buena idea es crear un directorio para cada proyecto. Por ejemplo, crea en tu cuenta el directorio tareas. Crea un subdirectorio para cada tarea. Por ejemplo, si la tarea 1 consiste en crear un programa que promedie algunos datos, escoge como archivo (File) z:\tareas\tarea1\promedia.jpr. La terminación jpr indica que se trata de un archivo que guarda la información de un proyecto.

Puedes además agregar información acerca de ti (Author) y la descripción del proyecto (Description), aunque no son extrictamente necesarios.

Cuando hayas terminado de ingresar la información, haz click en Finish.

La siguiente pantalla aparecerá:

Ya has creado un proyecto, y es momento de que empieces a programar.

Agregar una clase

Un programa simple en Java consiste en una única clase. Más adelante en el curso vamos a ver la implementación de programas que compuestos por varias clases, pero por mientras puedes pensar en un programa en Java como en una clase.

Haz click en File y escoge la opción New. Nuevamente aparecerá la ventana New... Haz click en Class. De esta forma, le estás indicando a JBuilder que deseas agregar una clase (programa) a tu proyecto.

Al hacer doble click sobre Class aparecerá el Class Wizard:

Fíjate que Package esté vacío. En class Name escribe el nombre de tu programa. En Extends debes asegurarte que aparezca Program. Deja los 4 checkbox en blanco tal como se ve en la figura de arriba. Presiona Ok.

Lo que acabas de hacer es crear una clase (programa) llamado Promedia que extiende Program. El archivo generado se guardará en la raíz de tu cuenta (Z:\) bajo el nombre Promedia.java.

JavaBuilder despliega la siguiente ventana:

En el extremo superior izquierdo aparece un árbol con los distintos archivos que componen tu proyecto. El único archivo relevante para ti es Promedia.java. Abajo aparece un árbol con las distintas clases del programa.

Compilación en JBuilder

La ventana a la derecha es donde tu debes escribir tu programa. JBuilder solo escribe el esqueleto del programa. Lo primero que debes escribir es un método llamado main que sirve para que JBuilder pueda ejecutar los programas que extienden Program. Escribe el siguiente programa:

class Promedio extends Program
{
        double promedio(double A[]) {
                double suma=0.0;
                for (int i=0; i<A.length; i++)
                        suma=suma+A[i];
                return suma/A.length;
        }
 
        void run () {
                println ("Promedio de n elementos");
                print ("Ingresa n:");
                n=readInt();
                double A[]=new double[n];
                for (int i=0; i<n; i++)
                        A[i]=readdouble();
                println ("Promedio:"+promedio(A));
                print ("Por favor presiona Enter");
                String finalizar=readLine();
        }

        public static void main (String args[]) {
                Run.main(args);
        }
}

Para compilar, haz click en
 

Al compilar JBuilder detectará 4 errores y automáticamente destacará en rojo el primero:

La información entregada por JBuilder es la siguiente: En la linea 12 (destacada en rojo) la variable n no ha sido encontrada. Estoq quiere decir que la variable n no ha sido declarada. Este error se repite en las líneas 13 y 14. El error en la línea 15 es distinto: el método readdouble no existe. Para "saltar" a la línea donde se produce ese error haz doble click sobre la línea con la descripción (es decir, donde sale Error: (15) method...").

JBuilder salta a la línea correspondiente y señala el error en rojo:
 

De esta forma, compilando una sola vez puedes arreglar la mayoría de los errores detectables en tiempo de compilación.

Corrige los errores (reemplaza la línea 12 por int n=...readInt()) y en la línea 15 reemplaza readdouble() por readDouble().

Para ejecutar el programa, haz click en

JBuilder abrirá una consola de texto donde se ejecuta el programa.
Es muy importante que la última linea de tu programa pida que se presione Enter y lea un String desde el teclado, si no, JavaBuilder termina la ejecución del programa y cierra la ventana sin que se alcance a notar nada.

Para guardar tu proyecto haz click en File/Save All.

Debug en JBuilder
Vamos a ver un nuevo ejemplo de programa para mostrar el potencial de JBuilder para ayudar al usuario a corregir programas:
  Copia el siguiente programa:

class Fibonacci extends Program {

    int fibonacci (int f) {
        if (f==1 || f==2)
            return 1;
        int f1=1;
        int f2=1;
        int i=2;
        while (i<=f) {
            int nuevo=f1+f2;
            f1=f2;
            f2=nuevo;
        }
        return f2;
    }

    void run () {
        println ("Este programa calcula el enésimo término de la sucesión de Fibonacci");
        print ("n:");
        int n=readInt();
        println ("Fibonacci de "+n+" es "+fibonacci(n));
        String finaliza=readLine();
    }

    public static void main (String args[]) {
        Run.main(args);
    }

}

Compílalo y ejecútalo:

El progama se queda "pegado". Presion Control-C para terminarlo. Usaremos JBuilder para encontrar el error.

Breakpoints

Una sesión de debug es muy similar a correr el programa paso a paso. Es decir, puedes ir viendo el valor que van tomando las variables en cada línea del programa. Un programa en una sesión de debug se ejecuta hasta que se encuentre un breakpoint. Los breakpoints se agregan haciendo click a la izquierda de la línea donde se desea colocar el breakpoint. Un nuevo click sobre esa línea borra el breakpoint.

Para comenzar con el debug, haz click en

Esto le indica a JBuilder que queremos hacer "debug" del programa.

El programa se ejecuta hasta encontrar un breakpoint:

En la ventana inferior izquierda aparecen las variables locales de run y su valor. Como n no tiene aún valor, al igual que el String finaliza, sus valores aparecen como ???

La línea que acaba de ser ejecutada aparece marcada con azul. Existen dos formas de pasar a la siguiente línea, presionando F7 (Trace into) o F8 (Step over).

Presiona tres veces f8 hasta posicionar la línea azul en

int n=readInt();

Haz click en la ventana donde está corriendo Java Debugger e ingresa el valor 3 para n

Si te fijas, la variable n aparece con el valor 3.

Si presionaras F8 ahora pasarías a la línea

String finaliza=readLine();

Pero en realidad lo que nos interesa es pasar a ejecutar paso a paso el método fibonacci. Para eso es útil Trace into (F7).

Presiona F7:

Como puedes ver, la primera línea del método fibonacci es la siguiente que se ejecutará. Aparecen todas las variables locales del método: f (con valor 3), f1, f2, i y nuevo con valor desconocido (pues aún no han sido asignadas).

Presiona F8 5 veces hasta entrar al while. Si continúas presionando F8 te daras cuenta que el programa ejecuta permanentemente el ciclo while ¡pues se nos ha olvidado incrementar el contador i!

Presiona Control-C en la ventana de Java Debugger para detener el debug.

Agrega

i=i+1

como última instrucción del while.

Echa a correr el programa e ingresa un valor de 3 para n. El programa te dirá que la solución es 3... cuando debiera ser 2 (la sucesión de fibonacci es 1, 1, 2, 3, 5, 8, 13, 21, 34, ...).

Borra el breakpoint anterior e inserta uno antes del while del método Fibonacci:

Inicia la sesión de debug haciendo click en
 

Recuerda de ingresar el valor de n por el teclado. Debes llegar a

Presiona 6 veces F8:

El while debiera ejecutarse una vez. Si ves el valor de i (3) y el valor de f (3) te darás cuenta que el programa volverá a entrar en el ciclo while. Presiona F8 para corroborarlo.

Puedes corregir el programa cambiando la condición del while por

while (i<f)

Si bien en este problema habría sido fácil encontrar el bug sin tener que usar el debugger, este es tan sólo un ejemplo. En programas más complicados, el debugger es una ayuda realmente grande.

En resumen, lo más importante al momente de hacer debug es: