Package de.willuhn.util
Class MultipleClassLoader
java.lang.Object
java.lang.ClassLoader
de.willuhn.util.MultipleClassLoader
ClassLoader der sich beliebiger anderer ClassLoader bedient.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Fuegt das uebergebene Jar-File oder Verzeichnis zum Class-Loader hinzu.void
Fuegt die uebergebene URL dem Class-Loader hinzu.void
addClassloader
(ClassLoader loader) Fuegt einen weiteren ClassLoader hinzu,File[]
Fuegt rekursiv alle Jar-Files zum Class-Loader hinzu, die sich im uebergebenen Verzeichnis befinden.File[]
Fuegt rekursiv alle Jar-Files zum Class-Loader hinzu, die sich im uebergebenen Verzeichnis befinden.protected Class
Liefert einen ClassFinder, der alle Klassen dieses ClassLoaders kennt.File[]
getFiles()
Liefert eine Liste aller lokalen Ressourcen.getName()
Liefert den Namen des Classloaders.getResource
(String name) getResourceAsStream
(String name) getResources
(String name) URL[]
getURLs()
Liefert eine Liste aller URLs, die im Classloader registriert sind.Laedt die angegebene Klasse und initialisiert sie.protected Class
void
Vergibt einen Namen fuer den Classloader.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
-
Constructor Details
-
MultipleClassLoader
public MultipleClassLoader()Erzeugt eine neue Instanz des Classloaders.
-
-
Method Details
-
setName
Vergibt einen Namen fuer den Classloader.- Parameters:
name
- Name fuer den Classloader.
-
getName
Liefert den Namen des Classloaders.- Overrides:
getName
in classClassLoader
- Returns:
- der Name des Classloaders.
-
addClassloader
Fuegt einen weiteren ClassLoader hinzu,- Parameters:
loader
- der hinzuzufuegende Classloader.
-
add
Fuegt die uebergebene URL dem Class-Loader hinzu.- Parameters:
url
- die 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
Liefert eine Liste aller lokalen Ressourcen. Also getURLs() abzueglich remote Ressourcen.- Returns:
- Liste der lokalen Files/Jars.
-
add
Fuegt das uebergebene Jar-File oder Verzeichnis zum Class-Loader hinzu.- Parameters:
file
- das Jar-File oder Verzeichnis.- Throws:
MalformedURLException
-
addJars
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:
MalformedURLException
-
addJars
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:
MalformedURLException
-
getResourceAsStream
- Overrides:
getResourceAsStream
in classClassLoader
- See Also:
-
getResource
- Overrides:
getResource
in classClassLoader
- See Also:
-
getResources
- Overrides:
getResources
in classClassLoader
- Throws:
IOException
- See Also:
-
findClass
- Overrides:
findClass
in classClassLoader
- Throws:
ClassNotFoundException
- See Also:
-
loadClass
- Overrides:
loadClass
in classClassLoader
- Throws:
ClassNotFoundException
- See Also:
-
loadClass
- Overrides:
loadClass
in classClassLoader
- Throws:
ClassNotFoundException
- See Also:
-
load
Laedt die angegebene Klasse und initialisiert sie.- Parameters:
className
- Name der Klasse.- Returns:
- Die Klasse.
- Throws:
ClassNotFoundException
LinkageError
- Das sind NoClassDefFoundError und Co.
-
getClassFinder
Liefert einen ClassFinder, der alle Klassen dieses ClassLoaders kennt.- Returns:
- ClassFinder.
-
toString
-