Voor een IRCbot geschreven in java probeer ik dynamische klasses te laden ( dit voor kleine scriptjes toe te voegen zonder de bot down te halen te hercompileren en van die dinges )
Ik probeer om de naam van een classe in een txt file te zetten en dit dan te laten uitlezen en dan te laden in een classLoader.
( ik heb toch de indruk dat dit zo zou moeten maar kan hier dus al fout gaan )
dit blijkt echter niet te werken
ik krijg geen Errors maar de System.out.println("test"+BI); doet hij gewoon niet terwijl de rest van mijn Ircbot wel gewoon verder loopt.
ook is de output van het object A : class QouteExt
(in de txt file staat ook de class QouteExt)
nu ben ik al een paar uurtjes aan het googlen maar dit zonder veel succes.
Mocht ik een volledig verkeerde denkwijze hebben zou ik dit natuurlijk graag willen weten.
Ik probeer om de naam van een classe in een txt file te zetten en dit dan te laten uitlezen en dan te laden in een classLoader.
( ik heb toch de indruk dat dit zo zou moeten maar kan hier dus al fout gaan )
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| public void loadClasses() { try { FileReader f = new FileReader ("loadClasses.txt"); BufferedReader br = new BufferedReader (f); String lijn = br.readLine(); for (int i=0; (!lijn.equals("stop") || (lijn == null)); i++){ Object a = this.getClass().getClassLoader().loadClass(lijn); System.out.println(lijn); BI = (BotInterface) a; BI.setBot(); System.out.println("test:" +BI); lijn = br.readLine(); } } catch (Exception e){ } } public interface BotInterface { public void setBot(); } public class QouteExt implements BotInterface { private BotHandler b; public void setBot() { System.out.println("jeeeej it works"); } public String toString() { return "QouteExt"; } } |
dit blijkt echter niet te werken
ik krijg geen Errors maar de System.out.println("test"+BI); doet hij gewoon niet terwijl de rest van mijn Ircbot wel gewoon verder loopt.
ook is de output van het object A : class QouteExt
(in de txt file staat ook de class QouteExt)
nu ben ik al een paar uurtjes aan het googlen maar dit zonder veel succes.
Mocht ik een volledig verkeerde denkwijze hebben zou ik dit natuurlijk graag willen weten.
[ Voor 11% gewijzigd door aghos op 04-05-2006 20:37 ]