hallo zusammen
ich will einen eigenen ClassLoader programmieren, der in JEDEM FALL benutzt werden soll.
diesen binde ich mit den JVM argument "-Djava.system.class.loader=CustClassLoader" ein. wenn ich das programm nun starte, wird mein ClassLoader mit einer instanz von Laucher$AppClassLoader als parent instantiiert. soweit so gut...
setze ich nun in der Klasse ClassLoader in der methode loadClass(name, resolve) einen breakpoint, sehe ich, dass am anfang auch wirklich mein CustClassLoader zum laden der klassen aufgerufen wird. dieser gibt den aufruf anscheinend an seinen parent, also Launcher$AppClassLoader weiter, und dieser an seinen parent Launcher$ExtClassLoader. dies macht er bei den ersten 2 bis 3 klassen, die geladen werden, dann aber auf einmal wird mein CustClassLoader übersrungen und direkt der AppClassLoader verwendet. wie kann ich das verhindern? die VM soll IMMER meinen ClassLoader aufrufen!
gruss simon
ich will einen eigenen ClassLoader programmieren, der in JEDEM FALL benutzt werden soll.
Code:
public class CustClassLoader extends ClassLoader{
public CustClassLoader(){
super();
}
public CustClassLoader(ClassLoader parent){
super(parent);
}
}
setze ich nun in der Klasse ClassLoader in der methode loadClass(name, resolve) einen breakpoint, sehe ich, dass am anfang auch wirklich mein CustClassLoader zum laden der klassen aufgerufen wird. dieser gibt den aufruf anscheinend an seinen parent, also Launcher$AppClassLoader weiter, und dieser an seinen parent Launcher$ExtClassLoader. dies macht er bei den ersten 2 bis 3 klassen, die geladen werden, dann aber auf einmal wird mein CustClassLoader übersrungen und direkt der AppClassLoader verwendet. wie kann ich das verhindern? die VM soll IMMER meinen ClassLoader aufrufen!
gruss simon