从具有现有 class 加载程序的文件夹加载 class
Load class from a folder with an existing class loader
我创建了 Bukkit-Plugins,我想动态加载 class。我写了这段代码:
private static Class<?> getClassFromFile(File folder, File file) {
if (!folder.exists())
return null;
try {
URL url = folder.toURL();
URL[] urls = new URL[] { url };
ClassLoader loader = new URLClassLoader(urls);
Class<?> cls = loader.loadClass(getNameWithoutExtension(file));
return cls;
} catch (Exception e) {
return null;
}
}
但我必须使用主要的 class 加载器,例如 ClassLoader cl;
如何使用现有的 class 加载程序从文件夹 "folder" 加载文件 "file"?
感谢您的帮助
我找到了一个非常简单的解决方案 :D!
对于那里的所有其他人:
改变
ClassLoader loader = new URLClassloader(urls);
至
URLClassLoader loader = new URLClassLoader(urls, cl);
对我来说很好用!
我创建了 Bukkit-Plugins,我想动态加载 class。我写了这段代码:
private static Class<?> getClassFromFile(File folder, File file) {
if (!folder.exists())
return null;
try {
URL url = folder.toURL();
URL[] urls = new URL[] { url };
ClassLoader loader = new URLClassLoader(urls);
Class<?> cls = loader.loadClass(getNameWithoutExtension(file));
return cls;
} catch (Exception e) {
return null;
}
}
但我必须使用主要的 class 加载器,例如 ClassLoader cl; 如何使用现有的 class 加载程序从文件夹 "folder" 加载文件 "file"?
感谢您的帮助
我找到了一个非常简单的解决方案 :D!
对于那里的所有其他人:
改变
ClassLoader loader = new URLClassloader(urls);
至
URLClassLoader loader = new URLClassLoader(urls, cl);
对我来说很好用!