El classpath
Qué es el CLASSPATH[editar]
El Classpath no es más que la lista de directorios y ficheros .jar que java utiliza para buscar clases. Java utiliza esta lista tanto al compilar como al ejecutar.
Se puede indicar esta lista de dos formas:
- Una variable de entorno:
Windows : set CLASSPATH=c:\un_directorio;c:\otro_directorio\fichero.jar Linux : export CLASSPATH=/un_directorio:/otro_directorio/fichero.jar
- Como opción en el comando java o javac
Windows : java -cp c:\un_directorio;c:\otro_directorio\fichero.jar ClasePrincipal Linux : java -cp /un_directorio:/otro_directorio/fichero.jar ClasePrincipal
Vemos que el separador de directorios y jars es punto y coma en windows, pero es dos puntos en unix/linux. El motivo es que windows ya usa el dos puntos para poner detrás de las unidades de disco (C:\) y que unix/linux ya usan el ; como separador de comandos
Cuando las clases tienen o pertenecen a un paquete, por ejemplo, la clase ClasePrincipal que pertenece al paquete MiPaquete, debe haber un directorio llamado MiPaquete y dentro de él el ClasePrincipal.java y/o ClasePrincipal.class. En este caso, el Classpath debe señalar al directorio que contiene el subdirectorio MiPaquete, y no al que contiene la clase ClasePrincipal.class. Por ejemplo:
Si tenemos el siguiente path C:\MI_PROYECTO\MiPaquete\ClasePrincipal.class en windows o bien /MI_PROYECTO/MiPaquete/ClasePrincipal.class en unix/linux, el Classpath sería así
Windows : set CLASSPATH=C:\MI_PROYECTO Linux : export CLASSPATH=/MI_PROYECTO