Java ClassPath createClassLoader(List classpathElements, String... paths)

Here you can find the source of createClassLoader(List classpathElements, String... paths)

Description

create Class Loader

License

Apache License

Declaration

private static URLClassLoader createClassLoader(List<String> classpathElements, String... paths) 

Method Source Code


//package com.java2s;
/*//from   w w  w  . ja  v  a 2 s  .  c om
 * Copyright 2016 Red Hat, Inc.
 *
 * Red Hat licenses this file to you under the Apache License, version
 * 2.0 (the "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 * implied.  See the License for the specific language governing
 * permissions and limitations under the License.
 */

import java.io.File;

import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

public class Main {
    private static URLClassLoader createClassLoader(List<String> classpathElements, String... paths) {
        List<URL> urls = new ArrayList<>();
        for (String path : paths) {
            URL url = pathToUrl(path);
            urls.add(url);
        }
        for (Object object : classpathElements) {
            if (object != null) {
                String path = object.toString();
                URL url = pathToUrl(path);
                urls.add(url);
            }
        }
        return createURLClassLoader(urls);
    }

    private static URL pathToUrl(String path) {
        try {
            File file = new File(path);
            return file.toURI().toURL();
        } catch (MalformedURLException e) {
            throw new IllegalArgumentException(
                    String.format("Cannot convert %s to a an URL: %s", path, e.getMessage()), e);
        }
    }

    private static URLClassLoader createURLClassLoader(Collection<URL> jars) {
        return new URLClassLoader(jars.toArray(new URL[jars.size()]));
    }
}

Related

  1. calculateClassPath(ClassLoader cl)
  2. createClassLoader(List libs, boolean useSystemClassPath)
  3. createClassPath(File file)
  4. dumpClasspath(ClassLoader loader)
  5. existsInClasspath(Class clazz, String fileName)