Para agregar nuevas rutas estáticas al classpath podemos:
· Agregar la opción –cp seguido de las librerías que deseamos incluir (separadas por “;”) al ejecutar el comando java:
>java -cp unJar.jar;otroJar.jar;unDirectorio/ claseInicial
· Incluir el nombre de las librerías en el manifiesto del archivo (MANIFEST.MF) bajo la propiedad “Class-Path”, separando cada clase por espacio:
>Class-Path: unJar.jar otroJar.jar unDirectorio/
Pero si queremos agregar nuevas rutas en tiempo de ejecución debemos usar el ClassLoader:
| URLClassLoader classLoader = ((URLClassLoader) ClassLoader.getSystemClassLoader());
Method metodoAdd = URLClassLoader.class.getDeclaredMethod("addURL", new Class[] { URL.class }); metodoAdd.setAccessible(true); // La URL del jar que queremos anadir URL url = new URL("file:///C:/Users/lib/mysql-connector-java-5.1.6.jar"); // Se invoca al metodo addURL pasando esa url del jar metodoAdd.invoke(classLoader, new Object[] { url }); |
Un ejemplo completo:



Deja un comentario