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.

No hay comentarios: