PDA

View Full Version : [Java]Caricamento lista librerie "dinamica"


Mixmar
20-07-2007, 14:38
Salve a tutti, una domanda (forse) un po' banale:

avrebbe senso, volendo caricare un'applicazione Java con molte dipendenze da varie librerie jar, far lanciare una piccola classe, diciamo "bootstrap" che:

1 - legge una directory contenente i jar da caricare (chessò, "lib" :cool: );
2 - prepara un URLClassLoader con tutti i jar incontrari caricati;
3 - lancia il programma principale caricandolo con il ClassLoader appena creato;

anzichè lanciare direttamente la classe principale col suo bravo classpath?

Vorrei in sostanza evitare di dover specificare con uno script (bat e/o sh) il classpath prima del caricamento dell'applicazione, perchè altrimenti devo farmi carico della manutenzione anche di questo, e del suo aggiornamento se per caso aumentasse il numero delle dipendenze.

Vi sembra una buona idea? Credo che tomcat faccia qualcosa di simile... (che non vuol dire necessariamente che sia una buona idea, però significa certamente che funziona e finora nessuno si è lamentato... :D ).

PGI-Bis
20-07-2007, 16:40
Non vedo controindicazioni. Tieni conto che il classpath in Java 6 supporta i gruppi per cui se infili tutto in una cartella "lib" l'avvio è:

java -cp .;lib/*

Non c'è molta manutenzione da fare. Contando poi che l'applicazione sarà sperabilmente un jar eseguibile, c'è il Class-Path nel manifesto e, anche lì, lo aggiorni una volta per tutti.

Ma, ripeto, la tua proposta non fa una piega.