List<URL> libUrls = new ArrayList<URL>();
// contract依赖的所有jar,加到classloader的classpath中
File libPath = new File(Const.ROOT_TESTCASES_PATH + File.separator + Const.SERVICE_PREFIX + serviceName + "/lib");
// 目录下所有的jar文件加到libUrs中
for (File jar : libPath.listFiles()) {
libUrls.add(jar.toURI().toURL());
}
//Creates a new instance of URLClassLoader for the specified URLs and parent class loader. If a security manager is installed, the loadClass method of the URLClassLoader returned by this method will invoke the SecurityManager.checkPackageAccess method before loading the class.
ClassLoader loader = URLClassLoader.newInstance((URL[]) libUrls.toArray(new URL[libUrls.size()]),
getClass().getClassLoader());
Class<?> clazz = Class.forName(clazzPath, true, loader);
java指定目录下的jar加到classloader中
最新推荐文章于 2022-03-18 10:39:28 发布