пользовательская проблема classLoader
проблема следующая: я взял базовый код classLoader изВот, но мой classLoader специфичен с той точки зрения, что он должен иметь возможность загружать классы из файловой системы (давайте возьмем WinOS), поэтому в classLoader должно быть несколькоsetAdditionalPath()
метод, который устанавливает путь (каталог в файловой системе), из которого мы будем загружать класс (только * .class, без jars). Вот код, который изменяет загрузчик по ссылке (вы можете видеть, что изменен только loadClass), но он не работает должным образом:
public void setAdditionalPath(String dir) {
if(dir == null) {
throw new NullPointerException("");
}
this.Path = dir;
}
public Loader(){
super(Loader.class.getClassLoader());
}
public Class loadClass(String className) throws ClassNotFoundException {
if(Path.length() != 0) {
File file = new File(Path);
try {
// Convert File to an URL
URL url = file.toURL();
URL[] urls = new URL[]{url};
// Create a new class loader with the directory
ClassLoader cl = new URLClassLoader(urls);
ClassLoader c = cl.getSystemClassLoader();
Class cls = c.loadClass(className);
return cls;
} catch (MalformedURLException e) {
} catch (ClassNotFoundException e) {
}
}
return findClass(Path);
}
Буду благодарен, если кто-нибудь поможет :)