/**
* 根据驱动类名和jar路径,动态创建驱动对象
* @param className 驱动类名
* @param localPathList 驱动jar或目录位置
* @return Driver 驱动对象
*/
public Driver getDriverFromJar(String className, List<String> localPathList) {
try {
List<URL> urlList = localPathList.stream().map(path ->{
//从path转为URL
File driverJar =new File(path);
try {
return driverJar.toURI().toURL();
} catch (MalformedURLException e) {
e.printStackTrace();
}
return null;
}).collect(toList());
URLClassLoader classLoader = new URLClassLoader(urlList.toArray(new URL[urlList.size()])
, Thread.currentThread().getContextClassLoader());
Class<?> jdbcClass = classLoader.loadClass(className);
Object object = jdbcClass.getDeclaredConstructor().newInstance();
if (object instanceof Driver) {
return (Driver) object;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
使用URLClassLoader在运行时动态加载驱动类
最新推荐文章于 2024-02-06 09:00:00 发布
本文介绍了如何根据给定的驱动类名和jar路径,使用Java动态创建Driver对象,涉及URLClassLoader和Class.forName方法的应用。
摘要由CSDN通过智能技术生成