• JAVA,  Programmazione

    Caricare jars e classi Java dinamicamente

    Java fornisce una funzionalità in cui è possibile modificare le variabili di ambiente di sistema utilizzando l’oggetto System. Quindi non si può modificare il classpath e risolvere il problema? No! il problema sta proprio qui, il classloader di sistema viene inizializzato proprio all’inizio della sequenza di avvio e copia il in esso classpath. Quindi, non servirebbe modificare dinamicamente il classpath visto che il classloader di sistema avrebbe già letto il classpath “vecchio” e caricato le classi di conseguenza. C’è una soluzione a tutto cio?…. Sì! i class loaders … Ma prima entrare nel dettaglio, facciamo una veloce disamina dei class loaders. Il caricamento di una classe è gestito dai class loaders della JVM, il Bootstrap loader è il loader principale che carica tutte le classi Java di base durante la fase di avvio, come molti sviluppatori Java già sanno non ci sono passi separati di linking come avviene in altri linguaggi di programmazione (vedi linguaggio C). Quando…