Método para cargar dinámicamente archivos de clase java

¿Cuál sería una buena forma de cargar dinámicamente los archivos de la clase java para que un progtwig comstackdo en un contenedor pueda leer todos los archivos de la clase en un directorio y usarlos, y cómo se pueden escribir los archivos para que tengan el nombre del paquete necesario en relación? a la jarra?

Creo que es un ClassLoader buscas.

Le sugiero que comience mirando el siguiente ejemplo que carga archivos de clase que no están en la ruta de clase.

 // Create a File object on the root of the directory containing the class file File file = new File("c:\\myclasses\\"); try { // Convert File to a URL URL url = file.toURL(); // file:/c:/myclasses/ URL[] urls = new URL[]{url}; // Create a new class loader with the directory ClassLoader cl = new URLClassLoader(urls); // Load in the class; MyClass.class should be located in // the directory file:/c:/myclasses/com/mycompany Class cls = cl.loadClass("com.mycompany.MyClass"); } catch (MalformedURLException e) { } catch (ClassNotFoundException e) { } 
 MyClass obj = (MyClass) ClassLoader.getSystemClassLoader().loadClass("test.MyClass").newInstance(); obj.testmethod(); 

o

 MyClass obj = (MyClass) Class.forName("test.MyClass").newInstance(); obj.testmethod(); 

Si agrega un directorio a su ruta de clase, puede agregar clases después de que se inicie la aplicación y esas clases se pueden cargar tan pronto como se escriben en el directorio.