miércoles, 10 de diciembre de 2008

Compilar y ejecutar clases en PACKAGE, en bloque desde la consola CMD

Los programas en Java, hechos usando PACKAGE, pueden ser compilados en bloque desde la consola, como se haría en JCreator, si se desea compilar todo un proyecto. Ejemplo de compilar ficheros en consola CMD, uno a uno se pueden ver en los ejemplos anteriores: en programas de consola y dibujando un línea en un canvas.
La desventaja de modificar un fichero, es que, se tiene que compilar todas las clases directamente relacionadas a la clase modificada, en la consola.

El ejemplo
El ejemplo es simple, se creará una clase Suma, que dado dos números enteros A y B, retornará a través del método sumar(): A+B. Desde la clase App que contiene el main, se llamará a la clase Suma y se reportará el resultado.

Suma.java

package sum;

public class Suma
{
private int a;
private int b;

public Suma(int aa, int bb)
{
a = aa;
b = bb;
}

public int sumar()
{
return a+b;
}

}

App.java

package sum;

public class App
{

public static void main(String[] param)
{
Suma s = new Suma(5,8);
int c = s.sumar();
System.out.println("Suma: "+c);
}
}

Creamos un archivo "run.bat", en donde compilaremos todos los archivos en bloque, y ejecutaremos la clase principal. El contenido del archivo "run.bat" es este:

Run.bat
javac sum\Suma.java
javac sum\App.java
java sum.App

Las instrucciones realizadas, se muestran en la siguiente figura, nótese que lo remarcado en rojo, son las instrucciones ejecutadas automáticamente, al ejecutarse el fichero "run.bat".


Descargar ficheros usados en este ejemplo.

martes, 9 de diciembre de 2008

Dibujar una línea en un Canvas

Este es un ejemplo sencillo, la intención es sólo dibujar una línea en un programa Java. Usaremos dos clases, la primera clase "Lienzo" permitirá heredar un Canvas, indicado para realizar gráficos en Java. La clase Canvas tiene una función que sobreescribiremos, llamada paint(). Esta función es eficiente al graficar, ya que cada vez que movemos la ventana entera que contiene al canvas, se hace el repintado de inmediato y evitamos que se borren nuestros gráficos.

Redefiniremos la función paint(Graphics g), donde la variable 'g' es la que permite llamar métodos para la generación de primitivas geométricas como: líneas, círculos, elipses entre otras. Como se ve, no usaremos directamente la clase Canvas, sino que heredaremos todas sus propiedades hacia una clase de usuario "Lienzo".

La segunda clase es "App" que contendrá el main, y donde crearemos una ventana con JFrame, ahí 'empotraremos' nuestro Lienzo que contendrá la línea dibujada. Dibujaremos una línea en 2D: desde del punto (0,0) hasta el punto (400,200).

Hay que tomar en cuenta que las coordenadas del canvas empiezan de arriba abajo y de izquierda a derecha.
La jerarquía de las clases es más o menos como queda en la siguiente figura:

Las clases en naranja: "App" y "Lienzo" son las clases creadas por nosotros y la que usaremos, las clases en azul son clases llamadas de las librerías de Java, a través de la sentencia 'import'. Tanto la clase "App" como "Lienzo" están en el paquete "canvas" (véase la primera línea en el código: package canvas), por tanto tendremos que crear una carpeta con el nombre "canvas" en donde estarán los archivos compilados de las clases.

Lienzo.java

package canvas;

import java.awt.Canvas;
import java.awt.Graphics;

public class Lienzo extends Canvas
{

public void paint(Graphics g)
{
// Dibujando una linea desde el punto (0,0) hasta el punto (400,200)
g.drawLine(0,0,400,200);
}

}

App.java

package canvas;

import javax.swing.JFrame;

public class App
{
public static void main(String[] param)
{
Lienzo l = new Lienzo();

JFrame ventana = new JFrame("Ventana de dibujo");

ventana.getContentPane().add(l);
ventana.setSize(400,400);

ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ventana.setVisible(true);
ventana.pack();
}
}

Las sentencias usadas para la compilación fueron:

La ventana tiene dimensiones 400x400. La línea está dibujada desde la coordenada (0,0) del Canvas, hasta el punto final (400,200), como puede verse en la figura:

domingo, 7 de diciembre de 2008

Un programa usando PACKAGE, compilándolo y ejecutándolo desde consola

Practicamente es imposible que los programadores usen sólo una clase para encapsular todos los requerimientos de un programa. Siempre es necesario usar un conjunto de clases, si hablamos de Java. Para este caso hay muchas soluciones, una común es bajarse un IDE como JCreator, Eclipse o Netbeans; nos ahorra tiempo y no nos preocupamos, mas que por escribir y correr nuestros programas. Acá propongo otro método, un poco más primitivo pero que sin embargo, tengo la certeza que será de utilidad, ya que nos vuelve un poquito más independientes de los IDEs, aunque resulten muy necesarios casi siempre.


Primero nos creamos una carpeta, con el nombre del paquete que queremos poner, en este caso mi paquete se llamará "report" y por tanto mi carpeta tendrá el mismo nombre. Entramos a la carpeta recién creada y ahi mismo creamos las clases, como estas dos que he escrito:

Clase: Reporte.java

package report;

public class Reporte
{

private String cadena;

public Reporte(String cad)
{
this.cadena = cad;
}

public void reportar()
{
System.out.println("--- REPORTANDO ... ----");
System.out.println(this.cadena + "\t");
}

}

Clase: App.java

package report;

public class App
{
public static void main(String[] param)
{
Reporte r = new Reporte("Hola Mundo!");
r.reportar();
}
}

Luego, salgo de la carpeta "report", subiendo un nivel, y desde ahi comienzo a compilar, usando: javac report\Reporte.java y javac report\App.java. Así se han compilado las dos clases anteriores. Luego ejecutaré la clase principal, que tiene el main, que en este caso es App, con el siguiente comando: java report.App, y podremos ver un reporte pequeño.

Si queremos evitar escribir siempre: java report.App, podremos crear un nuevo archivo y colocar en la primera línea el comando: java report.App. Luego lo guardamos con extensión ".bat": 'ejec.bat'. Al escribir en consola: ejec.bat, se ejecutará el programa. El archivo BAT debe estar un nivel arriba del directorio "report" siempre, a menos que, usemos una classpath, pero esa es otra historia.

viernes, 5 de diciembre de 2008

Primer programa en java usando la consola cmd de Windows

Luego de haber registrado el compilador y otras aplicaciones del JDK en las variables del sistema de Windows, estaremos en la capacidad de realizar un programa en java, desde la consola de windows.
  • Abrimos la ventana ejecutar, con teclas de acceso rápido sería: "+R".
  • Escribimos en la ventana ejecutar: "cmd" y le damos "Enter".
  • A continuación se abrirá la consola de Windows.
Ya dentro de la consola, podremos visualizar la ubicación en que nos encontramos. Crearemos un directorio llamado "primer". Ejecutamos en la consola la instrucción: "md primer", para crear el directorio. Luego entramos al directorio "primer" con la instrucción: "cd primer".

Estando dentro de "primer", crearemos un fichero: "app.java", esto lo hacemos ejecutando desde consola: "notepad app.java", en seguida se abre el bloc de notas y empezamos a escribir un programa que reporte "Hola mundo!".
El programa es parecido a este:

public class app
{
public static void main(String[] param)
{
System.out.println("Hola mundo!");
}
}
Guardamos los cambios y volvemos a la consola para compilar el programa. Ejecutamos la instrucción: "javac app.java" para compilar, luego se habrá generado automáticamente un fichero "app.class". Para ejecutar el programa ahora, damos la instrucción: "java app", y se reportará: "Hola mundo!".

Aquí una imagen, de las instrucciones dadas en consola y el programa escrito:
Espero sea de utilidad.

Instalar java y registrar el compilador en variables del sistema en Windows

Aquí explicaremos cómo instalar el JDK, para comenzar a realizar programas en java, usando Windows. Primero bajaremos el JDK desde su sitio oficial, luego registramos el compilador y sus demas programas auxiliares en las variable del sistema. Los pasos a seguir son:
  • Bajar el JDK desde su página oficial, hasta la fecha de hoy tenemos el JDK 6 Update 10. Tardará un tiempo considerable en instalarse, y luego podremos notar que se ha creado la carpeta: "C:\Archivos de programa\Java", dentro del contenido de esa ruta, podremos notar la carpeta: jdk, en mi caso, está la carpeta: jdk1.6.0_05

  • El siguiente paso es ubicar dónde se encuentra el archivo: "javac.exe". El lugar más obvio donde se encuentra tal archivo, es en: "C:\Archivos de programa\Java\jdk\bin\". Yo reemplazo por mi versión: 1.6.0_05. Mi ruta completa es: C:\Archivos de programa\Java\jdk1.6.0_05\bin

  • Hacemos click derecho en mi PC, y vamos a variables de entorno, como se muestra en la siguiente figura.


  • En variable del sistema, modificamos la variable PATH, agregándole al final de la cadena: ";C:\Archivos de programa\Java\jdk1.6.0_05\bin".

Bueno eso ha sido todo por hoy.