code: public static URLClassLoader getURLClassLoader(final File pluginDir,
        List<String> extLibClassPaths,
        ClassLoader parentLoader) {
      final File libDir = new File(pluginDir, LIBRARY_FOLDER_NAME);
      if (libDir.exists() && libDir.isDirectory()) {
        final File[] files = libDir.listFiles();
        final ArrayList<URL> urls = getUrls(files);
  
        if (extLibClassPaths != null) {
          for (final String extLibClassPath : extLibClassPaths) {
            try {
              final File extLibFile = new File(pluginDir, extLibClassPath);
              if (extLibFile.exists()) {
                if (extLibFile.isDirectory()) {
                  // extLibFile is a directory; load all the files in the
                  // directory.
                  final File[] extLibFiles = extLibFile.listFiles();
                  urls.addAll(getUrls(extLibFiles));
                } else {
                  final URL url = extLibFile.toURI().toURL();
                  urls.add(url);
                }
              } else {
                logger.error(
                    "External library path not found. path = " + extLibFile.getAbsolutePath()
                );
                continue;
              }
            } catch (final MalformedURLException e) {
              logger.error(
                  "Invalid External library path. path = " + extLibClassPath + " dir = " + pluginDir,
                  e
              );
            }
          }
        }
        return new URLClassLoader(urls.toArray(new URL[urls.size()]), parentLoader);
      } else {
        logger.error("Library path not found. path = " + libDir);
        return null;
      }
    }
docs: Get URLClassLoader