28 votes

Où mettre les bocaux externes ?

J'utilise eclipse (3.4) et ma classe se compile sans avertissement ni erreur. Mon projet utilise un fichier jar externe.

Où dois-je placer ce fichier jar externe afin de ne pas obtenir une erreur java.lang.NoClassDefFoundError lorsque j'utilise cette classe à partir d'un autre projet (pas dans eclipse) ?

Edit :
Je pourrais simplement extraire le jar dans le dossier du projet, mais cela ne me semble pas correct.

43voto

James Camfield Points 830

Si vous souhaitez inclure un fichier JAR dans votre projet Eclipse, vous devez généralement créer un dossier "lib" dans le dossier du projet et y placer le fichier. Vous devez ensuite indiquer à Eclipse de l'inclure dans votre chemin de classe afin que votre code soit compilé et exécuté dans Eclipse.

Pour ce faire :
- Allez dans les propriétés de votre projet
- Sélectionnez "Java Build Path" dans la colonne de gauche.
- Sélectionnez l'onglet "Bibliothèques" dans la partie centrale de la fenêtre.
- Cliquez sur le bouton Add JARs - cela vous donnera une liste de vos projets dans eclipse - développez votre projet et dans le dossier lib - votre jar sera là.
- Sélectionnez le JAR, cliquez sur OK, puis à nouveau sur OK pour quitter la fenêtre des propriétés.

Votre code va maintenant être compilé et exécuté.

12voto

Simon Points 14656

Mettez-le dans votre jre/lib/ext dossier

Tout ce qui a été dit à propos du classpath est vrai, mais il s'agit d'un endroit cohérent et judicieux pour le placer.

vous pouvez trouver votre dossier jre en consultant la variable d'environnement JAVA_HOME sous Windows.

8voto

Jon Skeet Points 692016

L'endroit où vous le placez n'a pas beaucoup d'importance, mais vous devez configurer votre autre projet non-Eclipse pour qu'il place les jars externes dans son classpath - ou utiliser le mécanisme de répertoire des extensions, si vous le souhaitez. (C'est plus facile, mais le rendre explicite est sans doute mieux).

3voto

user3132194 Points 46

La réponse de Simon semble être la meilleure mais elle est un peu dépassée maintenant. J'ai cherché sur Google ce document Oracle Extensions installées .

À partir de Java 6, les fichiers JAR d'extension peuvent également être placés dans un emplacement indépendant de tout JRE particulier, afin que les extensions puissent être partagées par tous les JRE installés sur un système.

Il est indiqué que pour Windows, vous devez placer vos extensions dans %SystemRoot%. \Sun\Java\lib\ext .

1voto

VonC Points 414372

Il suffit de le référencer en utilisant un -classpath dans un dossier qui n'est pas inclus dans un espace de travail eclipse, c'est-à-dire qui ne dépend pas du tout d'eclipse.

Attention, vous ne pouvez pas exécuter votre autre projet avec java -jar si vous référencez votre jar externe avec -cp option ( voir cette question )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X