Class 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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • MultipleClassLoader

        public MultipleClassLoader()
        Erzeugt eine neue Instanz des Classloaders.
    • 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 class java.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 class java.lang.ClassLoader
        See Also:
        ClassLoader.getResourceAsStream(java.lang.String)
      • getResource

        public java.net.URL getResource​(java.lang.String name)
        Overrides:
        getResource in class java.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 class java.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 class java.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 class java.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 class java.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 class java.lang.Object
        See Also:
        Object.toString()