jueves, 28 de abril de 2011

CLASSPATH Y PACKAGE EN LINUX Y WINDOWS

Para explicaros de una forma sencilla la variable CLASSPATH y la creación de paquetes, vamos a hacer el ejercicio 1 de este tema con el jdk a través de la consola o terminal. El ejercicio 1 dice:

Cree una clase dentro de un paquete. Cree una instancia de esta clase fuera de dicho paquete.

Voy a crear dos clases, la clase Ejer_1 es la que se va a ejecutar y, por tanto, va a contener el método main. Esta clase la voy a crear en la carpeta:

/home/arween/Documentos/Java/PiensaEnJava/EjerciciosPiensaEnJava4/Tema_6
El código de esta clase es:
// Clase Ejer_1.java
import tema6.*;

public class Ejer_1{

   public static void main(String args[]){       
      Lib1 lib1=new Lib1();
   }
   
}



A continuación voy a crear una clase dentro de un paquete. La clase se va a llamar Lib1 y va a pertenecer al paquete tema6. Por tanto, tengo que crear una carpeta con el nombre tema6, esta carpeta la voy a crear dentro de una carpeta llamada paquetes, donde pretendo almacenar todos los paquetes que vaya realizando en cada tema del libro. La ruta es la siguiente:

/home/arween/Documentos/Java/PiensaEnJava/EjerciciosPiensaEnJava4/paquetes/tema6

Y el código sería el siguiente:
// Clase Lib1.java
package tema6;

public class Lib1{

   public Lib1(){       
      System.out.println("Clase Lib1 del paquete tema6");
   }
   
}

Recuerda que este paquete lo guardo dentro de la carpeta tema6 que está dentro de paquetes.
A continuación voy a añadir a la variable CLASSPATH la ruta para encontrar mis paquetes en Linux:

CLASSPATH=.:/home/arween/Documentos/Java/PiensaEnJava/EjerciciosPiensaEnJava4/paquetes; export CLASSPATH


En Windows sería algo así:

set CLASSPATH=.;C:\Documentos\Java\PiensaEnJava\EjerciciosPiensaEnJava4\paquetes

El '.' lo pongo porque si no no ejecuta la clase Ejer_1.
A continuación ya puedo compilar y ejecutar la clase Ejer_1 desde su carpeta.
Pero con esto hay un problema, en Linux cuando se cierra el terminal o se apaga el ordenador, la variable CLASSPATH se borra y habría que actualizarla cada vez que la necesitemos. En Windows ocurre lo mismo. Para evitar esto vamos a ver los pasos que tenemos que seguir para que nuestra carpeta paquetes esté siempre disponible en la variable CLASSPATH cada vez que entramos en la terminal o consola. En Linux (yo lo he hecho en Ubuntu) tenemos que modificar el archivo profile que está dentro de /etc añadiendo lo siguiente:

CLASSPATH=.:/home/arween/Documentos/Java/PiensaEnJava/EjerciciosPiensaEnJava4/paquetes; export CLASSPATH


El archivo profile contiene órdenes para personalizar el entorno. Estas órdenes son leídas cada vez que el usuario entra en el sistema. Si hacemos alguna modificación en este archivo debemos reiniciar el equipo para que surtan efecto los cambios.
Una vez reiniciado el equipo podemos comprobar que se ejecuta de manera correcta Ejer_1 sin tener que modificar la variable de entorno CLASSPATH.

Lo visto anteriormente es para Linux. Una forma fácil de cambiar la variable de entorno CLASSPATH en Windows sin tener que actualizarla cada vez que arranquemos el ordenador es la siguiente:
1. Pulsa sobre MiPC con el botón derecho y elige Propiedades.
2. En la ventana Propiedades del Sistema activa la pestaña Opciones avanzadas.
3. Ahora pulsa sobre el botón Variables de entorno.
4. Busca la variable CLASSPATH y pulsamos doble clic o Editar.
5. Coloca el cursor al principio o al final de la línea (en realidad se puede colocar después de cualquier punto y coma(;) pero de esta forma sabemos donde añadimos nuestra nueva ruta y es más fácil), agrega punto y coma(;) y añade la nueva ruta que quieres agregar al CLASSPATH. Un ejemplo podría ser:

C:\Documentos\Java\PiensaEnJava\EjerciciosPiensaEnJava4\paquetes


6. Acepta todas las ventanas.

La próxima vez que inicies estará activa la nueva configuracion.
Podéis ver información muy valiosa sobre package y CLASSPATH en la página de Chuidiang, tanto para Linux como para Windows:

Página de Chuidiang

No hay comentarios:

Publicar un comentario