Ho un caso in cui ho bisogno di creare molti caricatori di classe nella mia applicazione per rendere temporaneamente visibile del codice mentre gli script forniti dall'utente sono in esecuzione. Sto usando un URLClassLoader
per questo e funziona abbastanza bene.Come si "chiude" un ClassLoader?
Quando termina lo script, voglio "scaricare" o "chiudere" il programma di caricamento classi per liberare le risorse.
È sufficiente impostare il riferimento al caricatore classe su null
? Mi chiedo in particolare se alla fine mancherò i file handle perché le classi extra sono in file JAR.
PS: Deve funzionare con Java 5 e versioni successive. Sì, lo so ...
Potrebbe questo essere utile: http: // StackOverflow. it/questions/148681/unloading-classes-in-java? – Thomas
Si desidera rimuovere i riferimenti agli oggetti o scaricare una classe. Quindi sei preoccupato per il ternured o il permgen – ssedano
In realtà, sono preoccupato per le connessioni aperte (ad esempio, InputStreams aperto per caricare risorse). –