Normalmente quello che faccio e' creare un loader, cosi' da mettere i jar/class che voglio caricare in un file di proprieta' e caricarli all'avvio dell'applicazione.
Pero' ovviamente potrei caricare questi file in qualsiasi altro momento, ad libitum
Ti ritorna un class loader che puoi usare per istanziare le classi che ti interessano.codice:private URLClassLoader addJars(Properties props) throws MalformedURLException { int jarCount = Integer.parseInt(props.getProperty("jarfiles.count")); URL[] vectURL = new URL[jarCount]; for (int i = 0; i < jarCount; i++) { String filename = props.getProperty("jarfile" + (i+1) + ".filename"); URL u = new File(filename).toURI().toURL(); vectURL[i] = u; } URLClassLoader loader = new URLClassLoader(vectURL); return loader; }
Le prestazioni ovviamente non cambiano rispetto a mettere i .jar nel CLASSPATH