Java - Qué Es El Classpath y Cómo Lo Ajusto - CampusMVP - Es
Java - Qué Es El Classpath y Cómo Lo Ajusto - CampusMVP - Es
Ya hemos explicado con detalle en este blog qué son los paquetes de Java y cómo
se utilizan.
Cuando estás programando en Java y quieres hacer uso de alguna clase desde tu
código que está en otro paquete o en una librería externa, debes incluir un import
al principio de tu clase, algo así:
1 import java.lang.Math;
2 import com.miempresa.utilidades.MiUtilidad;
o, incluso, para importar varias clases dentro del mismo paquete, se puede usar un
asterisco:
1 import java.lang.*;
2 import com.miempresa.utilidades.*;
1 de 5 17/10/2024, 11:34
Java: qué es el classpath y cómo lo ajusto | campusMVP.es https://www.campusmvp.es/recursos/post/java-que-es-el-classpath-y...
Así, luego, en tu programa puedes hacer uso de las clases que has importado, de
manera directa, en nuestro ejemplo, algo así:
1 System.out.println(Math.PI);
2 MiUtilidad prueba = new MiUtilidad();
que mostrará por consola el valor del número Pi, de�nido dentro de la clase Math ,
e instanciará un nuevo objeto de la clase MiUtilidad() que tenemos en una
librería de terceros, por ejemplo.
¿Cómo sabe el compilador de Java dónde encontrar las clases que hemos
importado? Más aún, si se trata de una clase de terceros, no de la plataforma, ¿de
qué manera averigua dónde está y cómo ponerla a disposición de tu programa a
partir del import ?
Básicamente, la máquina virtual de Java (JVM) puede utilizar dos tipos de archivos
para acceder a este código referenciado:
Los primeros suelen estar en la carpeta output de nuestro proyecto, por ejemplo,
en el archivo carpeta output/com/miempresa/utilidades/MiUtilidad.class ,
junto a los demás archivos compilados de las demás clases de ese paquete.
Los segundos, .jar , pueden estar en cualquier sitio de nuestro sistema, en donde
el compilador debe encontrarlos.
Pero lo que no tendría sentido es que, para localizar cada paquete, se recorriese
el disco duro completo buscándolos.
Así, si la clase MiUtilidad que queremos emplear en nuestro código forma parte
de una librería externa que nos han facilitado en forma de archivo .jar para su
2 de 5 17/10/2024, 11:34
Java: qué es el classpath y cómo lo ajusto | campusMVP.es https://www.campusmvp.es/recursos/post/java-que-es-el-classpath-y...
Variables de entorno
La primera opción, de las variables de entorno, es la más directa, porque además
queda permanentemente establecida en nuestro sistema, pero al mismo tiempo es
la más problemática, porque es una con�guración no tan fácil de replicar y
transportar a otro equipo o entorno y además podemos "arreglar" un programa y
"cargarnos" otro por andar tocando la variable.
1 export CLASSPATH=/home/usuario/misProyectos/libs/*:/
utilidades/libs/utils.jar
También podemos añadir una ruta a las rutas que hayamos establecido
previamente usando una variable, así:
3 de 5 17/10/2024, 11:34
Java: qué es el classpath y cómo lo ajusto | campusMVP.es https://www.campusmvp.es/recursos/post/java-que-es-el-classpath-y...
1 export CLASSPATH=${CLASSPATH}:/utilidades/libs/utils.jar
Lo que hará será expandir esa variable, sustituyéndola por su valor, para, a
continuación, concatenarle la ruta o rutas adicionales que nos interesen.
1 set classpath=C:\java\MisClases;C\Utilidades\libs\utils.jar
Del mismo modo, podemos expandir una variable para agregar rutas nuevas a las
ya existentes:
1 set classpath=%classpath%;C\Utilidades\libs\utils.jar
Las herramientas de Java, como java para ejecutar o javac para compilar,
admiten un parámetro -classpath o su versión abreviada -cp que sirven
especí�camente para establecer las rutas del CLASSPATH .
Así, es tan sencillo como hacer esto, por ejemplo, para compilar un programa:
Fíjate en cómo le pasamos los mismos valores que antes, en el caso de Linux o
macOS separados por : , para indicar las rutas que queremos utilizar en el
CLASSPATH . Además, con el parámetro -d le estamos diciendo en qué carpeta
queremos que se generen los archivos compilados.
4 de 5 17/10/2024, 11:34
Java: qué es el classpath y cómo lo ajusto | campusMVP.es https://www.campusmvp.es/recursos/post/java-que-es-el-classpath-y...
Comentarios (1) -
Santiago
09/12/2021 17:54:47
Responder
© Krasis Consulting S.L.U. - Aviso Legal y Política de privacidad - Política de Cookies - Gestionar cookies
5 de 5 17/10/2024, 11:34