概述
动态加载jar
背景
通过UrlClassloader + SPI机制动态加载第三方jar包
代码流程
1、UrlClassloader加载指定目录jar
public ClassLoader getClassLoader() throws Exception {
List<String> filePathList = new ArrayList<>();
filePathList.add("E:\spi_jar\openstack-driver-1.0.jar");
filePathList.add("E:\spi_jar\docker-driver-1.0.jar");
List<URL> urlList = new ArrayList<>();
for (String path : filePathList) {
File dockerJarFile = new File(path);
urlList.add(dockerJarFile.toURI().toURL());
}
return new URLClassLoader(urlList.toArray(new URL[]{}), Thread.currentThread().getContextClassLoader());
}
2、servicelaoder加载类
public void loadJar() throws Exception{
ServiceLoader<CloudDriver> cloudDrivers = ServiceLoader.load(CloudDriver.class, getClassLoader());
for (CloudDriver cloudDriver : cloudDrivers) {
cloudDriver.createVirtualMachine();
}
}
最后
以上就是瘦瘦彩虹为你收集整理的SPI动态加载jar动态加载jar的全部内容,希望文章能够帮你解决SPI动态加载jar动态加载jar所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复