» Referenzen / Klassen / ClassLoader

Diese Klasse ist abstrakt und für den Ladevorgang einer Klasse zuständig. Dabei verweist jede Klasse per Referenz auf ihr Lademodul. Davon ausgenommen sind Arrays, die durch die JVM geladen und erzeugt werden.

Die Klasse delegiert dabei stets ihre Aufgaben an ihr übergeordnetes Modul weiter. Dabei handelt es sich um den Bootstrap - Lader der JVM, die selbst keinen Superklasse mehr hat.

» ab JDK Version 1.0



public abstract class ClassLoader
extends Object
    

» Object


keine


» Elemente

In der folgenden Liste sind alle von uns bereits referenzierten Elemente der Klasse aufgeführt.

» Methoden » Konstruktoren

» defineClass [1][2]
» definePackage
» findClass
» findLibrary
» findLoadedClass
» findResource
» findResources
» findSystemClass
» getPackage
» getPackages
» getParent
» getResource
» getResourceAsStream
» getResources
» getSystemClassLoader
» getSystemResource
» getSystemResourceAsStream
» getSystemResources
» loadClass [1][2]
» resolveClass
» setSigners


» ClassLoader (1)
» ClassLoader (2)

» Datenelemente » Destruktoren

keine


keine


» Konstruktoren / ClassLoader (1)

Der Standardkonstruktor instanziiert ein neues Objekt. Sofern ein Sicherheitsmanager installiert ist, wird die Methode checkCreateClassLoader aufgerufen.

» Prototyp

protected ClassLoader()
    
» Parameter

keine

» Ausnahmen & Fehler

SecurityException
Die Erzeugung eines neuen Lademoduls ist nicht gestattet.

» ab JDK Version 1.0

» Konstruktoren / ClassLoader (2)

Der Konstruktor instanziiert ein neues Objekt, wobei dessen Elternklasse angegeben wird, an die die Aufgaben zu delegieren sind. Sofern ein Sicherheitsmanager installiert ist, wird die Methode checkCreateClassLoader aufgerufen.

» Prototyp

protected ClassLoader(ClassLoader parent)
    
» Parameter

parent Die Elternklasse des Objekts.

» Ausnahmen & Fehler

SecurityException
Die Erzeugung eines neuen Lademoduls ist nicht gestattet.

» ab JDK Version 1.2

» Methoden / defineClass [1][2]

Die Methoden erzeugen ein neues Klassenobjekt aus den Informationen eines Arrays, welche die entsprechenden Daten im passenden Format bereitstellen. Optional kann eine Domain zugewiesen werden, da ansonsten eine Standarddomain verwendet wird.

» Prototyp

protected final Class defineClass(String name,
byte[] array,int offset,int length)
throws ClassFormatError
protected final Class defineClass(String name,
byte[] array,int offset,int length,ProtectionDomain domain)
throws ClassFormatError
    
» Parameter

name Der Name der erwarteten Klasse. Null falls dieser unbekannt ist.
array Das Array mit den Daten zur Konstruktion der Klasse.
offset Beginn der Daten im Array.
length Bytes, die ab Datenbeginn des Arrays zu verwenden sind.
domain Die geschützte Domain der Klasse.

» Rückgabe

Objekt Das konstruirte Klassenobjekt.

» Ausnahmen & Fehler

ClassFormatError
Das Datenformat des Arrays ist falsch.
IndexOutOfBoundsException
Die Offset und Längenparameter sind negativ oder überschreiten das Array.
SecurityException
Die Klasse kann nicht im gewünschten Package erstellt werden.

» ab JDK Version 1.1 / 1.0

» Methoden / definePackage

Die Methoden definiert ein Package im aktuellen Lademodul, so dass dieses nun Klassen für dieses Package definieren kann.

» Prototyp

protected Package definePackage
(
String name,
String stitle,
String sversion,
String svendor,
String ititle,
String iversion,
String ivendor,
   URL base
)
throws IllegalArgumentException
    
» Parameter

name Der Name des Package.
stitle Der Titel der Spezifikation.
sversion Die Version der Spezifikation.
svendor Der Autor der Spezifikation.
ititle Der Titel der Implementierung.
iversion Die Version der Implementierung.
ivendor Der Autor der Implementierung.
base Falls ungleich null, ist das Package auf die Adresse hin signiert.

» Rückgabe

Objekt Das konstruirte Paketobjekt.

» Ausnahmen & Fehler

IllegalArgumentException
Der definierte Paketname ist bereits vorhanden.

» ab JDK Version 1.2

» Methoden / definePackage

Die Methoden sucht eine Klasse anhand ihres Namens.

» Prototyp

protected Class findClass(String name)
throws ClassNotFoundException
    
» Parameter

name Der Name der gesuchten Klasse.

» Rückgabe

Objekt Das gesuchte Objekt.

» Ausnahmen & Fehler

ClassNotFoundException
Die Klasse wurde nicht gefunden.

» ab JDK Version 1.2

» Methoden / findLibrary

Die Methoden liefert den absoluten Pfad einer Bibliothek.

» Prototyp

protected String findLibrary(String name)
    
» Parameter

name Der Name der gesuchten Bibliothek.

» Rückgabe

String Absoluter Pfad der Bibliothek.
null Die Bibliotheken werden intern über Pfadvariablen referenziert.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.2

» Methoden / findLoadedClass

Die Methoden liefert eine Klasse, welche durch dieses Modul geladen wurde.

» Prototyp

protected final Class findLoadedClass(String name)
    
» Parameter

name Der Name der gesuchten Klasse.

» Rückgabe

Objekt Das Klassenobjekt der Klasse.
null Die Klasse wurde nicht geladen.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.1

» Methoden / findResource

Die Methode sucht eine Ressource anhand ihres Namens.

» Prototyp

protected URL findResource(String name)
    
» Parameter

name Der Name der gesuchten Ressource.

» Rückgabe

URL Die Adresse der gesuchten Ressource.
null Die Ressource wurde nicht gefunden.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.2

» Methoden / findResources

Die Methode liefert eine Liste aller Ressources mit dem angegebenen Namen.

» Prototyp

protected Enumeration findResources(String name)
throws IOException
    
» Parameter

name Der Name der gesuchten Ressource.

» Rückgabe

Objekt Eine Liste aller gefundenen Ressourcen.

» Ausnahmen & Fehler

IOException
Fehler im Stream aufgetreten.

» ab JDK Version 1.2

» Methoden / findSystemClass

Die Methode sucht die angegebene Klasse und läd sie, falls dies erforrderlich ist.

» Prototyp

protected final Class findSystemClass(String name)
throws ClassNotFoundException
    
» Parameter

name Der Name der gesuchten Klasse.

» Rückgabe

Objekt Das Klassenobjekt der Klasse.

» Ausnahmen & Fehler

ClassNotFoundException
Es wurde keine entsprechende Klasse gefunden.

» ab JDK Version 1.0

» Methoden / getPackage

Die Methode liefert ein durch dieses Modul geladenes Package.

» Prototyp

protected Package getPackage(String name)
    
» Parameter

name Der Name des gesuchten Pakets.

» Rückgabe

Objekt Das entsprechende Paketobjekt.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.2

» Methoden / getPackages

Die Methode liefert eine Liste aller durch dieses Modul geladenen Pakete.

» Prototyp

protected Package[] getPackages()
    
» Parameter

keine

» Rückgabe

Array Ein Array aller geladenen Pakete.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.2

» Methoden / getParent

Die Methode liefert die Elternklasse des Lademoduls für dessen Delegationen. Falls das Bootstrap - Lademodul der JVM betroffen ist, wird null geliefert. Sofern ein Sicherheitsmanager installiert ist, wird dessen checkPermission - Methode aufgerufen.

» Prototyp

public final ClassLoader getParent()
    
» Parameter

keine

» Rückgabe

Objekt Die Elternklasse des Lademoduls.

» Ausnahmen & Fehler

SecurityException
Der Zugriff auf die Elternklasse wird verweigert.

» ab JDK Version 1.2

» Methoden / getResource

Die Methode liefert die Adresse einer gesuchten Ressource.

» Prototyp

public URL getResource(String name)
    
» Parameter

name Der Name der gesuchten Ressource.

» Rückgabe

Objekt Die Adresse der gefundenen Ressource.
null Die Ressource wurde nicht gefunden.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.1

» Methoden / getResourceAsStream

Die Methode liefert einen Eingabestream, um die Daten der Ressource auszulesen.

» Prototyp

public InputStream getResourceAsStream(String name)
    
» Parameter

name Der Name der gesuchten Ressource.

» Rückgabe

Objekt Der Eingabestream der Ressource.
null Die Ressource wurde nicht gefunden.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.1

» Methoden / getResources

Die Methode liefert eine Liste aller gesuchten Ressourcen mit einem bestimmten Namen.

» Prototyp

public final Enumeration getResources(String name)
throws IOException
    
» Parameter

name Der Name der gesuchten Ressourcen.

» Rückgabe

Objekt Die Liste mit den gefundenen Ressourcen. Falls keine Ressourcen gefunden wurden, enthält das Objekt keine Elemente.

» Ausnahmen & Fehler

SecurityException
Der Zugriff auf die Informationen wird verweigert.

» ab JDK Version 1.1

» Methoden / getSystemClassLoader

Die Methode liefert das System - Klassenlader. Dieser ist das Elternteil der neu instanziierten Lademodule.

» Prototyp

public static ClassLoader getSystemClassLoader()
    
» Parameter

keine

» Rückgabe

Objekt Das System - Lademodul.

» Ausnahmen & Fehler

SecurityException
Der Zugriff auf die Informationen wird verweigert.

» ab JDK Version 1.2

» Methoden / getSystemResource

Die Methode liefert die Adresse einer gesuchten Ressource. Gesucht wird in der Systemumgebung.

» Prototyp

public static URL getSystemResource(String name)
    
» Parameter

name Der Name der gesuchten Ressource.

» Rückgabe

Objekt Die Adresse der gefundenen Ressource.
null Die Ressource wurde nicht gefunden.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.1

» Methoden / getSystemResourceAsStream

Die Methode liefert einen Eingabestream, um die Daten der Ressource auszulesen. Gesucht wird in der Systemumgebung.

» Prototyp

public static InputStream getSystemResourceAsStream(String name)
    
» Parameter

name Der Name der gesuchten Ressource.

» Rückgabe

Objekt Der Eingabestream der Ressource.
null Die Ressource wurde nicht gefunden.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.1

» Methoden / getResources

Die Methode liefert eine Liste aller gesuchten Ressourcen mit einem bestimmten Namen. Gesucht wird in der Systemumgebung.

» Prototyp

public static Enumeration getSystemResources(String name)
throws IOException
    
» Parameter

name Der Name der gesuchten Ressourcen.

» Rückgabe

Objekt Die Liste mit den gefundenen Ressourcen. Falls keine Ressourcen gefunden wurden, enthält das Objekt keine Elemente.

» Ausnahmen & Fehler

SecurityException
Der Zugriff auf die Informationen wird verweigert.

» ab JDK Version 1.2

» Methoden / loadClass [1][2]

Die Methoden laden eine Klasse über deren Namen. Optional kann bestimmt werden, ob die Klasse später wieder zerlegt werden soll.

» Prototyp

   public Class loadClass(String name                )
throws ClassNotFoundException
protected Class loadClass(String name,boolean resolve)
throws ClassNotFoundException
    
» Parameter

name Der Name der gesuchten Ressourcen.
resolve Wenn True, dann wird die Klasse wieder zerlegt.

» Rückgabe

Objekt Das resultierende Klassenobjekt.

» Ausnahmen & Fehler

ClassNotFoundException
Die Klasse konnte nicht gefunden werden.

» ab JDK Version alle 1.0

» Methoden / resolveClas

Die Methoden linkt die angegebene Klasse.

» Prototyp

protected final void resolveClass(Class class)
    
» Parameter

class Die zu linkende Klasse.

» Rückgabe

keine

» Ausnahmen & Fehler

NullPointerException
Die Referenz auf die Klasse ist null.

» ab JDK Version 1.0

» Methoden / setSigners

Die Methoden definiert die Signaturen einer Klassen.

» Prototyp

protected final void setSigners(Class class,Object[] signers)
    
» Parameter

class Die zu signierende Klasse.
signers Die zu setzenden Signaturen.

» Rückgabe

keine

» Ausnahmen & Fehler

keine

» ab JDK Version 1.1