Java Reference
In-Depth Information
}
}
Der interessanteste und wichtigste Teil befi ndet sich in der Main-Methode der Klasse Hot-
Deployment (s. Listing 5.5). Dort wird in einer Endlosschleife in jedem Schleifendurchlauf
ein neues ClassLoader-Objekt des Typs URLClassLoader erzeugt. Dieses ClassLoader-Objekt
wird benutzt, um die Klasse HotDeploymentClass1 zu laden. Dann wird ein Objekt dieser
Klasse erzeugt (wir wissen ja, dass die Klasse HotDeploymentClass1 einen parameterlosen
Konstruktor besitzt) und auf dieses Objekt die Methode call angewendet. Zum Erzeugen
eines URLClassLoader-Objekts wird ein URL-Feld benötigt. In Listing 5.5 wird ein Feld der
Länge 1 benutzt, welches ein URL-Objekt enthält, welches das Verzeichnis „hotdeployment“
repräsentiert.
Listing 5.5 Klasse HotDeployment zur Realisierung des Hot Deployment
package javacomp.basics;
import java.io.*;
import java.net.*;
public class HotDeployment
{
public static void main(String[] args)
{
while(true)
{
try
{
URL url =
new File("hotdeployment/").toURI().toURL();
URLClassLoader cl =
new URLClassLoader(new URL[]{url});
Class<?> newClassVersion = cl.loadClass(
"javacomp.basics.HotDeploymentClass1");
HotDeploymentInterface obj;
obj = (HotDeploymentInterface)
newClassVersion.newInstance();
obj.call();
Thread.sleep(3000);
}
catch(Exception e)
{
System.err.println(e);
}
}
}
}
Wenn wir von einer Eclipse-Umgebung ausgehen, dann befi nden sich in dem Verzeichnis
eines Java-Projekts ein Verzeichnis src für den Quellcode und ein Verzeichnis bin für die
übersetzten Class-Dateien. Das zuletzt genannte Verzeichnis gehört zum CLASSPATH. Um
den Eff ekt des Hot Deployment erfolgreich zu demonstrieren, dürfen sich die Class-Dateien
für die Klassen HotDeploymentClass1 und HotDeploymentClass2 nicht innerhalb von bin
befi nden. Jedoch muss im Projektverzeichnis neben src und bin ein neues Verzeichnis mit
 
Search WWH ::




Custom Search