Quote Originariamente inviata da federico.massim Visualizza il messaggio
Salve,
Per un progetto avrei bisogno di importare dinamicamente dei jar o file .class .
Dato che sono molto interessato alle performance dell'applicazione, volevo sapere se il fatto di importare delle classi a runtime piuttosto che inserirle nel classpath poteva portare a una riduzione di prestazione ?

Eventualmente, quale sarebbe il modo migliore di importare i jar nel codice, sempre avendo come obbiettivo quello di massimizzare la prestazione?

Grazie in anticipo
Federico.
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

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;
    }
Ti ritorna un class loader che puoi usare per istanziare le classi che ti interessano.
Le prestazioni ovviamente non cambiano rispetto a mettere i .jar nel CLASSPATH