819 votes

Comment ajouter des jars externes (lib/*.jar) à un projet IntelliJ IDEA ?

Lors de la création d'un nouveau projet Java dans IntelliJ IDEA, les répertoires et fichiers suivants sont créés :

./projectname.iml
./projectname.ipr
./projectname.iws
./src/

Je veux configurer IntelliJ IDEA pour qu'il inclue mes JARs de dépendance dans ./lib/*.jar au projet. Quelle est la bonne façon d'y parvenir dans IntelliJ IDEA ?

0 votes

Je suis confronté à un problème lors de l'exécution du programme dans le terminal d'IntelliJ. J'ai utilisé l'instruction import pour utiliser les classes dont j'ai besoin dans le programme. Lorsque je l'exécute dans l'IDE, il fonctionne bien. Mais lorsque j'essaie de compiler à partir de la ligne de commande % javac MonProgramme.java, le message d'erreur suivant s'affiche : cannot find symbol (Impossible de trouver le symbole).

1495voto

Cambium Points 4070

dialogue in Intellij 20.3

Étapes pour ajouter des bocaux externes dans IntelliJ IDEA :

  1. Cliquez sur Fichier à partir de la barre d'outils
  2. Sélectionnez Structure du projet option ( CTRL + SHIFT + ALT + S sur Windows/Linux, + ; sur Mac OS X)
  3. Sélectionnez Modules sur le panneau de gauche
  4. Sélectionnez Dépendances onglet
  5. Sélectionnez + icône
  6. Sélectionnez 1 JARs ou répertoires option

112 votes

Pensez également à ajouter un dossier lib, et utilisez "Attach Jar Directories", qui ajoutera tous les jars dans le dossier lib. Pour un projet de grande envergure, cela vous évite d'avoir à choisir chaque jar individuellement.

18 votes

Pour référence future : ce bouton "Ajouter" était en dehors du bord droit de la fenêtre et j'ai passé un temps fou à le chercher avant de trouver ce post et de penser à redimensionner la fenêtre. (C'était sous OSX 10.6.5...)

8 votes

@joeslice cela ne fonctionne que si les JARs sont dans le répertoire Root, non ? Cela ne semble pas fonctionner pour les JARs dans les sous-répertoires de 'lib'.

269voto

curiosu Points 703

IntelliJ IDEA 15 et 2016

  1. Fichier > Structure du projet...

    File > Project Structure

    ou appuyez sur Ctrl + Alt + Shift + S

  2. Paramètres du projet > Modules > Dépendances > " + " signe > JARs ou répertoires...

    Modules > Dependencies > JAR or directories

  3. Sélectionnez le fichier jar et cliquez sur OK, puis cliquez sur un autre bouton OK pour confirmer.

    enter image description here

    enter image description here

  4. Vous pouvez voir le fichier jar dans le dossier "External Libraries".

    enter image description here

1 votes

En fait, je crée un nouveau module dans le panneau "Modules" (nommé par exemple "JarsForLogging"), puis j'ajoute tous les jars dont j'ai besoin (situés dans un répertoire éloigné de l'arbre du projet) à ce nouveau module et je marque les jars comme "Export". Enfin, j'ajoute le module nouvellement créé aux dépendances du module original. C'est un peu plus hiérarchique de cette façon.

0 votes

En outre, assurez-vous que permissions du système de fichiers sont réglés correctement pour le .jar dossiers. Utilisez chmod pour les modifier sur Linux ou MacOS.

4 votes

Fonctionne toujours en 2018 (année et version IntelliJ). Merci. De cette façon, je peux charger et utiliser les bibliothèques Armed Bear Common Lisp depuis IntelliJ, génial !

151voto

gurkan Points 689

Il suffit de copier-coller le .jar dans le dossier "libs" (ou dans tout le dossier "libs"), de faire un clic droit dessus et de sélectionner l'option "Add as library" dans la liste. Cela fera le reste...

enter image description here

0 votes

C'est le plus simple et c'est ce que nous avons l'habitude de faire depuis l'époque d'Eclipse.

3 votes

Tout simplement !

3 votes

C'est un peu ennuyeux que l'on demande toujours un "nom" alors, peut-on laisser n'importe quel nom là-dedans ?

29voto

m3n0R Points 2333

Si vous construisez votre projet avec gradle, il vous suffit d'ajouter une ligne aux dépendances dans le build.gradle :

buildscript {
    ...
}
...

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
}

puis ajoutez le dossier à votre projet ou module racine :

enter image description here

Ensuite, vous y déposez vos bocaux et vous êtes prêt à partir :-)

0 votes

Je suis confronté à un problème lors de l'exécution du programme dans le terminal d'IntelliJ. J'ai utilisé l'instruction import pour utiliser les classes dont j'ai besoin dans le programme. Lorsque je l'exécute dans l'IDE, il fonctionne bien. Mais lorsque j'essaie de compiler à partir de la ligne de commande % javac MyProgram.java, le message error : cannot find symbol. -

0 votes

Cela devrait être la bonne réponse, car elle vous permet de pousser et de synchroniser les bibliothèques nécessaires sans aucune configuration de celles qui tirent le projet. Configurez-le une fois et oubliez-le.

1 votes

Wow, je n'arrive pas à croire le temps qu'il a fallu pour trouver cette ligne ! Même le tutoriel sur Gradle ne l'a pas. Il m'a fallu une semaine pour le faire fonctionner (dans le peu de temps libre et d'énergie que j'avais) haha. Je ne crée pas de bibliothèques normalement et il y a si longtemps que je l'ai fait avant.

24voto

duffymo Points 188155

Vous les ajoutez en tant que bibliothèques à votre module.

J'ai généralement un /lib dans ma source. J'y place tous les JARs dont j'ai besoin, j'ajoute /lib comme bibliothèque et je l'intègre aux dépendances de mon module.

Mise à jour de 2018 : j'utilise maintenant IntelliJ 2017/2018.

Je suis entièrement acquis à Maven et Nexus pour la gestion des dépendances.

C'est ainsi que le monde est devenu. Chaque projet Java open source que je connais utilise Maven ou Gradle. Vous devriez aussi.

0 votes

Oui, mais que se passe-t-il si le pom Maven ne s'appelle pas pom.xml ? Dans ce cas, il semble que je ne puisse pas lire les dépendances Maven.

4 votes

La convention est de l'appeler pom.xml. Suivez la convention et renommez votre fichier.

0 votes

Je trouve toujours le besoin, lorsque le jar n'a pas de repo maven ... mais, je ne comprends pas comment faire cela correctement . Je comprends comment ajouter un répertoire, mais je ne comprends pas comment le faire importer les javadocs également. Cela fonctionne lorsque j'ajoute un jar en tant que fichier unique, mais pas si j'ajoute un répertoire. Est-ce tout simplement impossible ?

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