35 import java.security.CodeSigner;
36 import java.security.CodeSource;
37 import java.security.Permission;
38 import java.security.PermissionCollection;
39 import java.security.PrivilegedAction;
40 import java.security.PrivilegedExceptionAction;
41 import java.security.SecureClassLoader;
42 import java.util.Enumeration;
43 import java.util.List;
44 import java.util.NoSuchElementException;
45 import java.util.Objects;
46 import java.util.Set;
47 import java.util.WeakHashMap;
48 import java.util.jar.Attributes;
49 import java.util.jar.Attributes.Name;
50 import java.util.jar.JarFile;
51 import java.util.jar.Manifest;
52
53 import jdk.internal.loader.Resource;
54 import jdk.internal.loader.URLClassPath;
55 import jdk.internal.misc.JavaNetURLClassLoaderAccess;
56 import jdk.internal.misc.SharedSecrets;
57 import jdk.internal.perf.PerfCounter;
58 import sun.net.www.ParseUtil;
59 import sun.security.util.SecurityConstants;
60
61 /**
62 * This class loader is used to load classes and resources from a search
63 * path of URLs referring to both JAR files and directories. Any {@code jar:}
64 * scheme URL (see {@link java.net.JarURLConnection}) is assumed to refer to a
65 * JAR file. Any {@code file:} scheme URL that ends with a '/' is assumed to
66 * refer to a directory. Otherwise, the URL is assumed to refer to a JAR file
67 * which will be opened as needed.
68 * <p>
69 * This class loader supports the loading of classes and resources from the
70 * contents of a <a href="../util/jar/JarFile.html#multirelease">multi-release</a>
71 * JAR file that is referred to by a given URL.
72 * <p>
73 * The AccessControlContext of the thread that created the instance of
74 * URLClassLoader will be used when subsequently loading classes and
75 * resources.
76 * <p>
|
35 import java.security.CodeSigner;
36 import java.security.CodeSource;
37 import java.security.Permission;
38 import java.security.PermissionCollection;
39 import java.security.PrivilegedAction;
40 import java.security.PrivilegedExceptionAction;
41 import java.security.SecureClassLoader;
42 import java.util.Enumeration;
43 import java.util.List;
44 import java.util.NoSuchElementException;
45 import java.util.Objects;
46 import java.util.Set;
47 import java.util.WeakHashMap;
48 import java.util.jar.Attributes;
49 import java.util.jar.Attributes.Name;
50 import java.util.jar.JarFile;
51 import java.util.jar.Manifest;
52
53 import jdk.internal.loader.Resource;
54 import jdk.internal.loader.URLClassPath;
55 import jdk.internal.access.JavaNetURLClassLoaderAccess;
56 import jdk.internal.access.SharedSecrets;
57 import jdk.internal.perf.PerfCounter;
58 import sun.net.www.ParseUtil;
59 import sun.security.util.SecurityConstants;
60
61 /**
62 * This class loader is used to load classes and resources from a search
63 * path of URLs referring to both JAR files and directories. Any {@code jar:}
64 * scheme URL (see {@link java.net.JarURLConnection}) is assumed to refer to a
65 * JAR file. Any {@code file:} scheme URL that ends with a '/' is assumed to
66 * refer to a directory. Otherwise, the URL is assumed to refer to a JAR file
67 * which will be opened as needed.
68 * <p>
69 * This class loader supports the loading of classes and resources from the
70 * contents of a <a href="../util/jar/JarFile.html#multirelease">multi-release</a>
71 * JAR file that is referred to by a given URL.
72 * <p>
73 * The AccessControlContext of the thread that created the instance of
74 * URLClassLoader will be used when subsequently loading classes and
75 * resources.
76 * <p>
|