Come gestire due file jar in Java?
Domanda
Sto usando Netbeans IDE per un progetto java. In questo progetto ho bisogno di un file jar " htmlunit-2.6.jar " ;.
Ho incluso questo file jar nella cartella delle librerie di progetto. Ho creato un'istanza della sua classe "WebClient" ma questa classe ha bisogno di altre classi di "commons-httpclient-3.1.jar" file.
Ora ho incluso anche " commons-httpclient-3.1.jar " file nella cartella delle librerie di progetto. Ma quando ho compilato il mio file sorgente, genera
ClassNotFoundException: org.apache.commons.httpclient.auth.CredentialsProvider
Per favore, dimmi come gestire questa situazione quando una classe in un file jar ha bisogno di altre classi in un altro file jar.
Soluzione
Metti semplicemente i file jar richiesti sul percorso di classe in fase di compilazione e dovrebbe funzionare. Se lo facessi dalla riga di comando, sembrerebbe così:
javac -cp jar1:jar2 my.Application
Se stai usando NetBeans
allora devi dire a NetBeans
che entrambi i JAR sono sul tuo percorso di classe. Sarà definibile in un Progetto > Proprietà procedura guidata come descritto qui e anche qui dal tutorial
Altri suggerimenti
ClassNotFoundException ti dice che le tue librerie hanno alcune dipendenze che non hai incluso nel tuo percorso di classe in fase di esecuzione. La tua fonte è OK, perché se hai usato qualcosa non disponibile, NB te lo dirà in fase di compilazione (o prima durante la modifica).
Quindi, benvenuti in " inferno di dipendenza " di Java. Per i piccoli progetti sarai in grado di controllare manualmente tutte le dipendenze con file readme, documenti, ecc. E inserirli nella configurazione del progetto come diceva oxbow_lakes. Per cose più grandi, guarda maven . Farà (la maggior parte) tutto per te!
(Maven è disponibile in NB6)