public class ExplicitClassLoader
extends java.lang.ClassLoader
The technical approach of:
load *.class as byte[],
defineClass to transform byte[] to Class>
is motivated by http://www.toptal.com/java/java-wizardry-101-a-guide-to-java-class-reloading.
Modifier and Type | Field and Description |
---|---|
protected java.io.File |
explicitClassPath |
protected java.lang.ClassLoader |
fallBackClassLoader |
protected java.lang.String |
qualifiedClassNamePrefix |
Constructor and Description |
---|
ExplicitClassLoader(java.io.File explicitClassPath,
java.lang.String qualifiedClassNamePrefix) |
ExplicitClassLoader(java.io.File explicitClassPath,
java.lang.String qualifiedClassNamePrefix,
java.lang.ClassLoader fallBackClassLoader) |
Modifier and Type | Method and Description |
---|---|
protected java.lang.Class<?> |
loadClass(java.lang.String name,
boolean resolve)
Re-implement to load any class sharing qualifiedClassNamePrefix from the explicitClassPath.
|
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
@NonNull protected final java.io.File explicitClassPath
@NonNull protected final java.lang.String qualifiedClassNamePrefix
@Nullable protected final java.lang.ClassLoader fallBackClassLoader
public ExplicitClassLoader(@NonNull java.io.File explicitClassPath, @NonNull java.lang.String qualifiedClassNamePrefix)
public ExplicitClassLoader(@NonNull java.io.File explicitClassPath, @NonNull java.lang.String qualifiedClassNamePrefix, @Nullable java.lang.ClassLoader fallBackClassLoader)
protected java.lang.Class<?> loadClass(java.lang.String name, boolean resolve) throws java.lang.ClassNotFoundException
loadClass
in class java.lang.ClassLoader
java.lang.ClassNotFoundException