. , , ,
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
.