Practica 02
Practica 02
PRACTICA 2
CLASSPATH
Práctica No. 2.
Classpath.
Objetivo:
Aprender a establecer el classpath para poder compilar una aplicación Java en
donde la clase principal y las clases secundarias están en archivos y ubicaciones distintas.
Palabras clave:
Clases, Compilación, Classpath.
Introducción:
Las clases en Java están organizadas en paquetes, los cuales están organizados en
directorios en el sistema de archivos. Pero, a diferencia del sistema de archivos, cuando tu
especificas un nombre de paquete, especificas, completamente, el nombre del paquete y
nunca una parte de él. Por ejemplo, el nombre del paquete para la clase java.awt.Button
siempre es java.awt.
Por ejemplo, supongamos que deseamos que Java en tiempo de ejecución encuentre
una clase llamada Cool.class en el paquete utility.myapp. Si la ruta a ese directorio es
C;\java\MyClasses\utility\myapp se tiene que establecer la ruta de la(s)
clase(s) (classpath) para que contenga el directorio C:\java\MyClasses.
Desarrollo:
Cree una aplicación que calcule la edad de una persona sabiendo su fecha de
nacimiento y la fecha actual. La clase principal llamada edad.java, la cual se encontrará en
un directorio llamado edad, pedirá al usuario la fecha de nacimiento y calculará la edad de la
persona en cuestión. Por otra parte, en un directorio llamado llamado fecha, se encontrará
una clase llamada fecha.java la cual se encargará de obtener la fecha actual, que será
usada en la clase principal. Así se ordenarán los directorios:
1
Tomado de la documentación de Classpath para Java 1.3
Práctica 2. Classpath. Pág. 3
Instituto Politécnico Nacional.
Escuela Superior de Cómputo
Departamento de Programación y Desarrollo de Sistemas.
Academia de Algoritmia y Programación.
Programación Orientada a Objetos II.
M. en C. Yaxkin Flores Mendoza
M. en C. Axel Ernesto Moreno Cervantes
Recomendaciones:
1. Programe las clases en archivos Java separados, pero en el mismo directorio. Ejecute la
aplicación para comprobar el funcionamiento y observar la salida.
2. Conociendo la salida esperada para la aplicación, proceda a separar las clases y realizar
las modificaciones pertinentes.
Preguntas:
1. ¿Qué modificaciones requirió realizar en el código fuente para que la aplicación
funcionará?
R: Solo separe las clases en diferentes archivos, y la compilación se hace haciendo
referencia a la carpeta así como la modificación de classpath para que la compilación fuera
posible. Y en el código especifique los package según la carpeta en la que estuvieran
contenidas las clases e importando la clase secundaria en la primaria.
2. ¿Cuáles con las dos formas que existe para modificar el classpath?.
R: Con el comando set classpath=<ruta>;<otra ruta>;….;<mas rutas>
3. Almacene la clase secundaria en un archivo JAR (la forma de realizarlo se puede
encontrar en la documentación de Java) y describa las forma de compilar la aplicación para
obtener los mismos resultados.
R: Para meter las clases en un archivo jar, primero deben compilarse:
Javac –cp <dirección del archivo de la clase secundaria> <archivo de la clase primaria>
Codigo Fuente:
package fecha;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Date;
public class fecha{
BufferedReader entrada = new BufferedReader(new
InputStreamReader(System.in));
String in;
int dia,mes,anio,diac,mesc,anioc,diar,mesr,anior;
public fecha(Date actual) throws IOException{
actual=new Date();
diac=actual.getDate();
mesc=actual.getMonth();
anioc=actual.getYear();
System.out.println("fecha actual: "+actual);
System.out.println("Ingrese el Dia de nacimiento: "+diac);
in = entrada.readLine();
dia = Integer.parseInt(in);
Práctica 2. Classpath. Pág. 5
Instituto Politécnico Nacional.
Escuela Superior de Cómputo
Departamento de Programación y Desarrollo de Sistemas.
Academia de Algoritmia y Programación.
Programación Orientada a Objetos II.
M. en C. Yaxkin Flores Mendoza
M. en C. Axel Ernesto Moreno Cervantes
package edad;
import fecha.*;
import java.io.IOException;
import java.util.Date;
Impresiones de pantalla
En la primera imagen se puede ver a grandes rasgos que los archivos java están en distintas
carpetas.
En la siguiente imagen se ven todos los comandos que anteriormente se han especificado, asi
como la ejecución del programa.
Conclusiones:
El classpath es la forma en que java sabe dónde se encuentran las clases para así poder
compilarlas, es necesario especificar dicha ruta en el caso de compilar una clase que depende
de otra y se encuentran (las clases) en diferentes direcciones o archivos.
Los archivos jar son contenedores similares a los que se utilizar en Unix (como tar, dev…) o
los archivos comprimidos (como zip, rar…). Estos archivos hacen que las clases (y todo lo que
se le quiera agregar dentro del contenedor) este ordenado, de esta forma se asegura que sea
portable y lo más interesante es que el contenedor jar es ejecutable (para aplicaciones
graficas solo basta con un par de clics y para consola, solo basta con el comando java –jar
<archivo.jar>) para cualquier plataforma que cuente con la maquina virtual de java.
Duración:
Una sesión de laboratorio.
Fechas:
Desarrollo de la práctica en laboratorio:
__________22 de Febrero de 2010______________________.
Entrega del reporte:
___________1 de Marzo de 2010_______________________.