Java 使用现有类加载器从文件夹中加载类
我创建Bukkit插件,并希望动态加载一个类。我写了这段代码:Java 使用现有类加载器从文件夹中加载类,java,classloader,Java,Classloader,我创建Bukkit插件,并希望动态加载一个类。我写了这段代码: private static Class<?> getClassFromFile(File folder, File file) { if (!folder.exists()) return null; try { URL url = folder.toURL(); URL[] urls = new URL[] { url }; 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;
}
}
私有静态类getClassFromFile(文件夹,文件){
如果(!folder.exists())
返回null;
试一试{
URL=folder.toURL();
URL[]URL=新URL[]{URL};
ClassLoader=新的URLClassLoader(URL);
类cls=loader.loadClass(getNameWithoutExtension(文件));
返回cls;
}捕获(例外e){
返回null;
}
}
但是我必须使用主类加载器,例如ClassLoader cl;
如何使用现有的类加载器从文件夹“folder”加载文件“file”
谢谢你的帮助我找到了一个非常简单的解决方案:D 对于所有其他人来说: 改变
ClassLoader loader = new URLClassloader(urls);
到
对我来说很好
URLClassLoader loader = new URLClassLoader(urls, cl);