. , , ,
private static int AddtoBuildPath(File f)
. , , : 1) , ClassLoader.getSystemClassLoader() URLClassLoader - , 2) , addURL , , .
, URL " Class.forName ", , (Java 8–10) :
1) , URL- , addURL
public class MyClassloader extends URLClassLoader {
    public MyClassloader(URL[] urls, ClassLoader parent) {
        super(urls, parent);
    }
    public void addURL(URL url) {
        super.addURL(url);
    }
}
2) ()/app )
private final MyClassloader classLoader;
classLoader = new MyClassloader(new URL[0], this.getClass().getClassLoader());
. . , classLoader , this.getClass().getClassLoader() .
3) ():
File file = new File(path);
if(file.exists()) {
    URL url = file.toURI().toURL();
    classLoader.addURL(url);
}
4)
cls = Class.forName(name, true, classLoader);
. ( ), , , , . : ClassPathB , ClassPathB ClassPathA classLoader, ClassPathB , ClassPathA . , ClassPathB , classLoader, ClassPathA ClassPathB.
5)
setContextClassLoader(classLoader)
, getContextClassLoader.