Hi!
Hab ein älteres Beispiel gefunden mit dem ClassLoader und zwar jenes
1. gibts bei mir kein load, sondern nur loadClass(String);
Aber mein größeres Problem ist, das er es trotzdem nicht lädt!
Also mein Hauptprogramm ist im package at.dstore.LoginProc bzw at.dstore.Menu
was ich aufrufen will hat immer hinten eine andere Endung at.dstore.logv.LogViewer (wobei LogViewer die HauptKlasse ist) oder at.dstore.kasturz.KassaSturz , usw
Wenn ich im Menu (package at.dstore.menu) jetzt sage
Geht das nicht, er sagt mir er findet die Klasse nicht!
Mache ich aber das danach oder davor findet er die Klasse
Dann funktioniert auch alles einwandfrei!
Also muss ich die Klasse zuvor irgendwie laden nur das schaffe ich halt net
es liegt im Verzeichnis
C:\develop\kunden\billa\bo\apps\LogViewer (weiter würde es gehen mit classes\at\dstore\logv\)
usw
Wie muss ich das jetzt laden damit das auch funktioniert?
Hab gesagt
Bekomme da aber eine ClassNotFoundException
Kann mir jemand helfen, bzw hat sich jemand schon mit sowas beschäftigt??
MfG
Hab ein älteres Beispiel gefunden mit dem ClassLoader und zwar jenes
Code:
URL[] myLoacations=new URL[]{new URL("file:/temp")};
ClassLoader loader=new URLClassLoader(myLoacations);
Class aClass=loader.load("de.test.Hallo",true);
1. gibts bei mir kein load, sondern nur loadClass(String);
Aber mein größeres Problem ist, das er es trotzdem nicht lädt!
Also mein Hauptprogramm ist im package at.dstore.LoginProc bzw at.dstore.Menu
was ich aufrufen will hat immer hinten eine andere Endung at.dstore.logv.LogViewer (wobei LogViewer die HauptKlasse ist) oder at.dstore.kasturz.KassaSturz , usw
Wenn ich im Menu (package at.dstore.menu) jetzt sage
Code:
Class clazz = LogViewer.class;
Class[] formparas = new Class[4];
formparas[0] = GraphicsConfiguration.class;
formparas[1] = Stack.class;
formparas[2] = PosMenu.class;
formparas[3] = ControlLogging.class;
Constructor cons = clazz.getConstructor(formparas);
//Aktuelle Argumente definieren
Object[] actargs = new Object[] { param1,param2,param3,param4};
Object obj = cons.newInstance(actargs);
Mache ich aber das danach oder davor findet er die Klasse
Code:
LogViewer logv = new LogViewer(param1,param2,param3,param4);
.... // obriger Code
Dann funktioniert auch alles einwandfrei!
Also muss ich die Klasse zuvor irgendwie laden nur das schaffe ich halt net
es liegt im Verzeichnis
C:\develop\kunden\billa\bo\apps\LogViewer (weiter würde es gehen mit classes\at\dstore\logv\)
usw
Wie muss ich das jetzt laden damit das auch funktioniert?
Hab gesagt
Code:
URL[] myLoacations=new URL[]{new URL("file:c:\\Develop\\Kunden\\Billa\\BO\\apps\\LogViewer\\classes\\at\\dstore\\logv")};
ClassLoader loader=new URLClassLoader(myLoacations);
Class aClass=loader.loadClass("at.dstore.logv");
Kann mir jemand helfen, bzw hat sich jemand schon mit sowas beschäftigt??
MfG