2009-09-09 7 views
2

J'utilise NetBeans IDE pour un projet Java. Dans ce projet, j'ai besoin d'un fichier jar "htmlunit-2.6.jar".Comment gérer deux fichiers jar dans Java?

J'ai inclus ce fichier jar dans le dossier des bibliothèques de projet. J'ai instancié une de ses classes "WebClient" mais cette classe a besoin d'autres classes du fichier "commons-httpclient-3.1.jar".

Maintenant, j'ai également inclus le fichier "commons-httpclient-3.1.jar" dans le dossier des bibliothèques du projet. Mais quand je compilé mon fichier source, il jette

ClassNotFoundException: org.apache.commons.httpclient.auth.CredentialsProvider

me dire comment gérer Veuillez cette situation quand une classe dans un fichier jar a besoin d'autres classes autre fichier jar.

+4

@Yatendra - il est considéré comme une mauvaise forme pour vous de ne pas accepter des réponses à vos questions. À l'avenir, les utilisateurs ne publieront pas de réponses aux utilisateurs ayant un taux d'acceptation de 0% tel que vous-même. Veuillez revenir sur vos anciennes questions et accepter quelques réponses. –

Répondre

5

Placez simplement les fichiers jar requis sur le classpath au moment de la compilation et cela devrait fonctionner. Si vous le faites à partir de la ligne de commande, alors il ressemblerait à ceci:

javac -cp jar1:jar2 my.Application 

Si vous utilisez NetBeans alors vous devez dire NetBeans que les deux sont JARs sur votre chemin de classe. Il sera définissable dans un projet> Propriétés Assistant as described here et aussi here from the tutorial

0

Le ClassNotFoundException vous dit que vos bibliothèques ont des dépendances que vous n'avez pas inclus dans votre classpath lors de l'exécution. Votre source est OK, car si vous avez utilisé quelque chose qui n'est pas disponible, NB vous le dira lors de la compilation (ou avant lors de la modification).

Alors, bienvenue dans le "dependency hell" de Java. Pour les petits projets, vous serez en mesure de vérifier toutes les dépendances à la main avec des fichiers readme, docs, etc et les mettre dans la configuration du projet comme oxbow_lakes dit. Pour les grandes choses, regardez maven. Il fera tout pour vous!

(Maven est disponible en NB6)

+1

Ne pas ajouter ** un JAR ** au classpath n'est pas * tout à fait * "dependency hell"! –

+0

Comme je comprends OP, il parle en ce moment à propos de 2 pots et le programme ne fonctionne pas. Qui sait combien de jarres auront besoin de la version en cours ... – PeterMmm

+0

Oui, je vois. 2 pots - c'est deux fois plus mauvais, ce qui, dans les années canines, signifie 2147483647 pire –

Questions connexes