El classpath

De ChuWiki
Saltar a: navegación, buscar

Qué es el CLASSPATH

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

Enlaces sobre el tema