java.io.Closeable, java.lang.AutoCloseablepublic class ParallelWorldClassLoader
extends java.lang.ClassLoader
implements java.io.Closeable
For example, with the following jar file:
/
+- foo
+- X.class
+- bar
+- X.class
ParallelWorldClassLoader("foo/") would load X.class from
/foo/X.class (note that X is defined in the root package, not
foo.X.
This can be combined with MaskingClassLoader to mask classes which are loaded by the parent
class loader so that the child class loader
classes living in different folders are loaded
before the parent class loader loads classes living the jar file publicly
visible
For example, with the following jar file:
/
+- foo
+- X.class
+- bar
+-foo
+- X.class
ParallelWorldClassLoader(MaskingClassLoader.class.getClassLoader())
would load foo.X.class from
/bar/foo.X.class not the foo.X.class
in the publicly visible place in the jar file, thus
masking the parent classLoader from loading the class from foo.X.class
(note that X is defined in the package foo, not
bar.foo.X.
| Constructor | Description |
|---|---|
ParallelWorldClassLoader(java.lang.ClassLoader parent,
java.lang.String prefix) |
| Modifier and Type | Method | Description |
|---|---|---|
void |
close() |
|
protected java.lang.Class |
findClass(java.lang.String name) |
|
protected java.net.URL |
findResource(java.lang.String name) |
|
protected java.util.Enumeration<java.net.URL> |
findResources(java.lang.String name) |
|
static java.net.URL |
toJarUrl(java.net.URL res) |
Given the URL inside jar, returns the URL to the jar itself.
|
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSignerspublic ParallelWorldClassLoader(java.lang.ClassLoader parent,
java.lang.String prefix)
protected java.lang.Class findClass(java.lang.String name)
throws java.lang.ClassNotFoundException
findClass in class java.lang.ClassLoaderjava.lang.ClassNotFoundExceptionprotected java.net.URL findResource(java.lang.String name)
findResource in class java.lang.ClassLoaderprotected java.util.Enumeration<java.net.URL> findResources(java.lang.String name)
throws java.io.IOException
findResources in class java.lang.ClassLoaderjava.io.IOExceptionpublic void close()
throws java.io.IOException
close in interface java.lang.AutoCloseableclose in interface java.io.Closeablejava.io.IOExceptionpublic static java.net.URL toJarUrl(java.net.URL res)
throws java.lang.ClassNotFoundException,
java.net.MalformedURLException
java.lang.ClassNotFoundExceptionjava.net.MalformedURLExceptionCopyright © 2017 Oracle Corporation. All rights reserved.