Package de.willuhn.util
Class MultipleClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- de.willuhn.util.MultipleClassLoader
-
public class MultipleClassLoader extends java.lang.ClassLoaderClassLoader 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 voidadd(java.io.File file)Fuegt das uebergebene Jar-File oder Verzeichnis zum Class-Loader hinzu.voidadd(java.net.URL url)Fuegt die uebergebene URL dem Class-Loader hinzu.voidaddClassloader(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.ClassfindClass(java.lang.String name)ClassFindergetClassFinder()Liefert einen ClassFinder, der alle Klassen dieses ClassLoaders kennt.java.io.File[]getFiles()Liefert eine Liste aller lokalen Ressourcen.java.lang.StringgetName()Liefert den Namen des Classloaders.java.net.URLgetResource(java.lang.String name)java.io.InputStreamgetResourceAsStream(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.Classload(java.lang.String className)Laedt die angegebene Klasse und initialisiert sie.java.lang.ClassloadClass(java.lang.String name)protected java.lang.ClassloadClass(java.lang.String name, boolean resolve)voidsetName(java.lang.String name)Vergibt einen Namen fuer den Classloader.java.lang.StringtoString()-
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:
getNamein 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.MalformedURLExceptionFuegt 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.MalformedURLExceptionFuegt 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.MalformedURLExceptionFuegt 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:
getResourceAsStreamin classjava.lang.ClassLoader- See Also:
ClassLoader.getResourceAsStream(java.lang.String)
-
getResource
public java.net.URL getResource(java.lang.String name)
- Overrides:
getResourcein 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:
getResourcesin 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:
findClassin 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:
loadClassin 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:
loadClassin 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.LinkageErrorLaedt die angegebene Klasse und initialisiert sie.- Parameters:
className- Name der Klasse.- Returns:
- Die Klasse.
- Throws:
java.lang.ClassNotFoundExceptionjava.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:
toStringin classjava.lang.Object- See Also:
Object.toString()
-
-