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.

È stato utile?

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)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top