Hey
Ik ben nu bezig om voor mijn IRC-bot in een dynamische classloader te maken, zodat ik de bot niet hoef te restarten om wijzigingen te kunnen testen.
Ik doet door middel van een object opnieuw inladen, waarvoor ik eerst de gecompileerde klasse op probeer te halen..
Maar op de een of andere manier krijg ik bij het ophalen nooit de nieuwe versie van een .class bestand, maar altijd de versie die in de map stond wanneer ik het programma startte. (Terwijl ik 100% zeker de bestanden compileer en dus verander)
Ik maak gebruik van de volgende URLClassLoader
Weet iemand waarom dit is, en hoe dit op valt te lossen? Ikzelf heb al wel de search gebruikt, maar er kwam weinig bruikbare topics voor mij uit. Ook heb ik al gegoogled op de URLClassloaders maar ook daar kon ik geen oplossing vinden..
(Is het een probleem qua cashing o.i.d)?
Ik doet door middel van een object opnieuw inladen, waarvoor ik eerst de gecompileerde klasse op probeer te halen..
Maar op de een of andere manier krijg ik bij het ophalen nooit de nieuwe versie van een .class bestand, maar altijd de versie die in de map stond wanneer ik het programma startte. (Terwijl ik 100% zeker de bestanden compileer en dus verander)
Ik maak gebruik van de volgende URLClassLoader
Java:
1
2
3
4
5
6
7
8
9
10
11
| public void herLaad(){ try { URLClassLoader clsLoader = new URLClassLoader(new URL[]{new URL("file:/" + "./")}); Class c = clsLoader.loadClass("Factory"); factory = null; factory = (Factory)c.newInstance(); factory.setBot( this ); } catch(Exception e){ e.printStackTrace(); } } |
Weet iemand waarom dit is, en hoe dit op valt te lossen? Ikzelf heb al wel de search gebruikt, maar er kwam weinig bruikbare topics voor mij uit. Ook heb ik al gegoogled op de URLClassloaders maar ook daar kon ik geen oplossing vinden..
(Is het een probleem qua cashing o.i.d)?