code: private JarFile getJarFile(String jarFileUrl) throws IOException {
          if (jarFileUrl.startsWith("file:")) {
              try {
                  final URI uri = new URI(jarFileUrl.replaceAll(" ", "\\%20"));
                  final String jarFileName = uri.getSchemeSpecificPart();
                  logger.info("Creating new JarFile based on URI-scheme filename: {}", jarFileName);
                  return new JarFile(jarFileName);
              } catch (URISyntaxException ex) {
                  // Fallback for URLs that are not valid URIs (should hardly ever
                  // happen).
                  final String jarFileName = jarFileUrl.substring("file:".length());
                  logger.info("Creating new JarFile based on alternative filename: {}", jarFileName);
                  return new JarFile(jarFileName);
              }
          } else {
              logger.info("Creating new JarFile based on URI (with '!/'): {}", jarFileUrl);
              return new JarFile(jarFileUrl);
          }
      }
docs: Resolve the given jar file URL into a JarFile object.