Package de.willuhn.util
Class MultipleClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- de.willuhn.util.MultipleClassLoader
-
public class MultipleClassLoader extends java.lang.ClassLoader
ClassLoader der sich beliebiger anderer ClassLoader bedient.
-
-
Constructor Summary
Constructors Constructor Description MultipleClassLoader()
Erzeugt eine neue Instanz des Classloaders.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(java.io.File file)
Fuegt das uebergebene Jar-File oder Verzeichnis zum Class-Loader hinzu.void
add(java.net.URL url)
Fuegt die uebergebene URL dem Class-Loader hinzu.void
addClassloader(java.lang.ClassLoader loader)
Fuegt einen weiteren ClassLoader hinzu,java.io.File[]
addJars(java.io.File directory)
Fuegt rekursiv alle Jar-Files zum Class-Loader hinzu, die sich im uebergebenen Verzeichnis befinden.java.io.File[]
addJars(java.io.File directory, java.lang.String[] extensions)
Fuegt rekursiv alle Jar-Files zum Class-Loader hinzu, die sich im uebergebenen Verzeichnis befinden.protected java.lang.Class
findClass(java.lang.String name)
ClassFinder
getClassFinder()
Liefert einen ClassFinder, der alle Klassen dieses ClassLoaders kennt.java.io.File[]
getFiles()
Liefert eine Liste aller lokalen Ressourcen.java.lang.String
getName()
Liefert den Namen des Classloaders.java.net.URL
getResource(java.lang.String name)
java.io.InputStream
getResourceAsStream(java.lang.String name)
java.util.Enumeration<java.net.URL>
getResources(java.lang.String name)
java.net.URL[]
getURLs()
Liefert eine Liste aller URLs, die im Classloader registriert sind.java.lang.Class
load(java.lang.String className)
Laedt die angegebene Klasse und initialisiert sie.java.lang.Class
loadClass(java.lang.String name)
protected java.lang.Class
loadClass(java.lang.String name, boolean resolve)
void
setName(java.lang.String name)
Vergibt einen Namen fuer den Classloader.java.lang.String
toString()
-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResource, findResources, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getPackage, getPackages, getParent, getPlatformClassLoader, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Method Detail
-
setName
public void setName(java.lang.String name)
Vergibt einen Namen fuer den Classloader.- Parameters:
name
- Name fuer den Classloader.
-
getName
public java.lang.String getName()
Liefert den Namen des Classloaders.- Overrides:
getName
in classjava.lang.ClassLoader
- Returns:
- der Name des Classloaders.
-
addClassloader
public void addClassloader(java.lang.ClassLoader loader)
Fuegt einen weiteren ClassLoader hinzu,- Parameters:
loader
- der hinzuzufuegende Classloader.
-
add
public void add(java.net.URL url)
Fuegt die uebergebene URL dem Class-Loader hinzu.- Parameters:
url
- die URL.
-
getURLs
public java.net.URL[] getURLs()
Liefert eine Liste aller URLs, die im Classloader registriert sind. Diese Liste enthaelt sowohl lokale Ressourcen als auch remote Ressourcen.- Returns:
- Liste aller URLs.
-
getFiles
public java.io.File[] getFiles()
Liefert eine Liste aller lokalen Ressourcen. Also getURLs() abzueglich remote Ressourcen.- Returns:
- Liste der lokalen Files/Jars.
-
add
public void add(java.io.File file) throws java.net.MalformedURLException
Fuegt das uebergebene Jar-File oder Verzeichnis zum Class-Loader hinzu.- Parameters:
file
- das Jar-File oder Verzeichnis.- Throws:
java.net.MalformedURLException
-
addJars
public java.io.File[] addJars(java.io.File directory, java.lang.String[] extensions) throws java.net.MalformedURLException
Fuegt rekursiv alle Jar-Files zum Class-Loader hinzu, die sich im uebergebenen Verzeichnis befinden.- Parameters:
directory
- Verzeichnis mit Jar-Files.extensions
- Liste von Datei-Endungen, die beruecksichtigt werden sollen. Also z.Bsp. ".jar,.zip".- Returns:
- eine Liste mit allen Jar-Files, die geladen wurden.
- Throws:
java.net.MalformedURLException
-
addJars
public java.io.File[] addJars(java.io.File directory) throws java.net.MalformedURLException
Fuegt rekursiv alle Jar-Files zum Class-Loader hinzu, die sich im uebergebenen Verzeichnis befinden. Diese Funktion beschraenkt sich bei der Suche auf die Standard-Archivendungen ".jar" und ".zip".- Parameters:
directory
- Verzeichnis mit Jar-Files.- Returns:
- eine Liste mit allen Jar-Files, die geladen wurden.
- Throws:
java.net.MalformedURLException
-
getResourceAsStream
public java.io.InputStream getResourceAsStream(java.lang.String name)
- Overrides:
getResourceAsStream
in classjava.lang.ClassLoader
- See Also:
ClassLoader.getResourceAsStream(java.lang.String)
-
getResource
public java.net.URL getResource(java.lang.String name)
- Overrides:
getResource
in classjava.lang.ClassLoader
- See Also:
ClassLoader.getResource(java.lang.String)
-
getResources
public java.util.Enumeration<java.net.URL> getResources(java.lang.String name) throws java.io.IOException
- Overrides:
getResources
in classjava.lang.ClassLoader
- Throws:
java.io.IOException
- See Also:
ClassLoader.getResources(java.lang.String)
-
findClass
protected java.lang.Class findClass(java.lang.String name) throws java.lang.ClassNotFoundException
- Overrides:
findClass
in classjava.lang.ClassLoader
- Throws:
java.lang.ClassNotFoundException
- See Also:
ClassLoader.findClass(java.lang.String)
-
loadClass
public java.lang.Class loadClass(java.lang.String name) throws java.lang.ClassNotFoundException
- Overrides:
loadClass
in classjava.lang.ClassLoader
- Throws:
java.lang.ClassNotFoundException
- See Also:
ClassLoader.loadClass(java.lang.String)
-
loadClass
protected java.lang.Class loadClass(java.lang.String name, boolean resolve) throws java.lang.ClassNotFoundException
- Overrides:
loadClass
in classjava.lang.ClassLoader
- Throws:
java.lang.ClassNotFoundException
- See Also:
ClassLoader.loadClass(java.lang.String, boolean)
-
load
public java.lang.Class load(java.lang.String className) throws java.lang.ClassNotFoundException, java.lang.LinkageError
Laedt die angegebene Klasse und initialisiert sie.- Parameters:
className
- Name der Klasse.- Returns:
- Die Klasse.
- Throws:
java.lang.ClassNotFoundException
java.lang.LinkageError
- Das sind NoClassDefFoundError und Co.
-
getClassFinder
public ClassFinder getClassFinder()
Liefert einen ClassFinder, der alle Klassen dieses ClassLoaders kennt.- Returns:
- ClassFinder.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
- See Also:
Object.toString()
-
-