Og det virker upåklageligt når der skal loades nogle classes der skal loades... Men... Problemet er hvis jeg mens mit program kører recompile're min plugin og genloader min plugin class... sådan: plugin = null; System.gc();/*jeg troede mit problem var noget med garbage colectoren ikke fik kørt finalize... men det er ikke det der er problemet*/ loadclass("plugintest");
min classloader loader classen igen, men fra javas cache...
er der nogen der kan hjælpe mig her vil jeg blive MEGET GLAD!!!!!!!
Du skal sørge for at bruge en ny class loader hver gang du loader. Det kan du gøre ved at benytte URLClassLoader klassen, der tager en URL[] som argument, der behøver du bare tilføje et element, nemlig hvor din .class fil kommet til at ligge/ligger.
Uha, så må du nedarve fra ClassLoader og læse class filen ind i en array hvorefter du kalder metoden defineClass (der er protected, derfor nedarvningen). Så kan du loade nye versioner af klasser der bliver kompileret under runtime. Hvis du bruger den normale Class.forName husker JVM'en hvad den har loadet og du får den gamle.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.