web-dev-qa-db-fra.com

Ajout d'une bibliothèque externe au fichier d'artefacts dans IntelliJ IDEA

Comment puis-je ajouter une bibliothèque externe à un projet dans IntelliJ IDEA afin que, lorsque je construis un artefact, celui-ci ait toujours accès aux classes de la bibliothèque? 

J'ai créé un nouvel artefact Jar à partir de la structure du projet, puis j'ai ajouté le fichier JAR externe aux bibliothèques, puis l'ai coché dans la liste des modules, puis ajouté à la sortie de l'artefact. Aucun de ces travaux. Lorsque je construis et tente d'exécuter mon application, une erreur est générée:

Exception in thread "main" Java.lang.NoClassDefFoundError: <path of the class trying to use>

Qu'est-ce qui me manque ou est-ce que je fais tout à fait faux?

5

Vous avez 2 options ici:

  • extraire la dépendance dans le fichier jar d'artefact afin que l'application soit le fichier jar exécutable unique avec toutes les dépendances
  • liez les fichiers dépendants via le Manifest.MF et copiez-les à proximité du fichier principal de l'application

J'ai préparé un exemple de projet qui illustre les deux approches: HelloWithDependencies.Zip .

Les artefacts sont produits dans les répertoires out\single et out\linked.

Configurations pertinentes:

 single

 linked

9
CrazyCoder

Si vous utilisez maven pour créer votre application, il ne s'agit pas de la bonne façon d'ajouter une bibliothèque externe. Vous devriez soit

  1. Faites une installation de votre bibliothèque comme ci-dessous mvn install:install-file -Dfile=myJar.jar -DgroupId=com.yourproject -DartifactId=yourproject -Dversion={version} -Dpackaging=jar
  2. Utilisez le chemin du système comme expliqué ici .

L'option 1 est préférable car vous n'avez pas à garder jar dans votre projet.

1
GauravJ