Comment ajouter un répertoire à classpath dans un profil d'exécution d'application dans IntelliJ IDEA?

206

J'essaie d'ajouter un répertoire au chemin de classe d'un profil d'exécution d'application

Si je remplace en utilisant -cp x: target / classes dans les paramètres de la machine virtuelle, j'obtiens l'erreur suivante:

java.lang.NoClassDefFoundError: com/intellij/rt/execution/application/AppMain

Une idée sur la façon d'ajouter un répertoire au chemin de classe pour mon projet?

sal
la source
1
Pour moi, ce n'est pas clair où vous essayez d'ajouter cela. Depuis la ligne de commande IJ? Ou dans les propriétés du projet?
Heiko Rupp
EN RELATION
AlikElzin-kilaka

Réponses:

270

Dans Intellij 13, il semble que c'est à nouveau légèrement différent. Voici les instructions pour Intellij 13:

  1. cliquez sur la vue Projet ou affichez-la en cliquant sur le bouton "1: Projet" sur le bord gauche de la fenêtre ou en appuyant sur Alt + 1
  2. trouvez votre projet ou sous-module et cliquez dessus pour le mettre en surbrillance, puis appuyez sur F4, ou faites un clic droit et choisissez "Ouvrir les paramètres du module" (sur IntelliJ 14, il est devenu F12)
  3. cliquez sur l'onglet dépendances
  4. Cliquez sur le bouton "+" à droite et sélectionnez "Bocaux ou répertoires ..."
  5. Trouvez votre chemin et cliquez sur OK
  6. Dans la boîte de dialogue avec "Choisir les catégories du fichier sélectionné", choisissez Classes(même s'il s'agit de propriétés), appuyez à nouveau sur OK et OK
  7. Vous pouvez maintenant exécuter votre application et elle aura le chemin sélectionné dans le chemin de classe
stivlo
la source
2
Alors, comment voulez-vous créer pour exécuter des configurations avec deux répertoires différents qui doivent être exclusivement présents dans l'un mais pas dans l'autre. Dans eclipse, vous pouvez ajouter / supprimer n'importe quoi dans une configuration de lancement. IntelliJ ne prend-il pas cela en charge?
Καrτhικ
9
Il est assez clair que vous pouvez modifier le chemin de classe du chemin de classe du module de modification de la configuration d'exécution . Mais la question exacte était "comment ajouter un répertoire au chemin de classe dans un profil d'exécution d' application ". Donc, le réel a été donné par uaaquarius
Pavel Vyazankin
Je vous remercie ! Cela a résolu mon problème après des heures de recherche!
JonasCz
1
L'étape 6 ne vient pas pour moi. Je suis sur intellij 14. J'ai un dossier appelé lib où se trouve mon .jar. sélectionner le dossier ou le bocal analysera simplement le chemin dans intellij. ne fonctionne toujours pas
Takeru
@Takeru Avez-vous compris cela?
rosshamish
91

Il semble qu'IntelliJ 11 ait changé de méthode et la réponse cochée ne fonctionne plus pour moi. Si quelqu'un d'autre arrive ici via un moteur de recherche, voici comment je l'ai résolu dans IntelliJ 11:

  1. Accédez à la structure du projet, cliquez sur modules, puis cliquez sur votre module
  2. Choisissez l'onglet "Dépendances"
  3. Cliquez sur le bouton "+" sur le côté droit et sélectionnez "Bocaux ou répertoires ..."
  4. Ajoutez le ou les répertoires souhaités (notez que vous pouvez effectuer une sélection multiple) et cliquez sur OK
  5. Dans la boîte de dialogue qui apparaît, sélectionnez "classes" et NON "répertoire jar"
  6. Assurez-vous que vous utilisez ce module dans votre cible d'exécution

Notez que l'étape 5 semble être la principale différence. Si vous sélectionnez "répertoire jar", il aura exactement la même apparence dans l'EDI mais n'inclura pas le chemin au moment de l'exécution. Il semble qu'il n'y ait aucun moyen de déterminer si vous avez déjà sélectionné "classes" ou "répertoire jar" après coup.

samkass
la source
4
Merci beaucoup d'avoir posté cela. Vous venez de me sauver une heure ou deux.
John Jiang
J'ai le même problème qu'avant avec IJ11 et j'étais heureux de trouver une réponse qui m'attendait cette fois.
sal
Parfait. Même processus pour IJ12. J'ai parcouru ce message en essayant de résoudre «java.lang.ClassNotFoundException: com / microsoft / jdbc / sqlserver / SQLServerDriver». Cela a résolu le problème de connexion. Merci
jkmurphy1
6
Je ne reçois pas l'étape 5 :( La boîte de dialogue ne s'affiche tout simplement pas.
Charles Wood
1
@CharlesWood: Quand je voulais sélectionner deux dossiers dont l'un contient des sous-dossiers. J'ai dû développer celui contenant les sous-dossiers via le petit symbole de flèche à côté du nom du dossier pour que la boîte de dialogue apparaisse. Sinon, la boîte de dialogue serait ignorée.
Timo Reimann
35

Vous pouvez essayer l' option -Xbootclasspath / a: path du lanceur d'applications Java. Par description, il spécifie «un chemin séparé par deux points des répertoires, des archives JAR et des archives ZIP à ajouter au chemin par défaut de la classe d'amorçage».

uaaquarius
la source
2
Une documentation sur le fonctionnement de -Xbootclasspath: docs.oracle.com/cd/E15289_01/doc.40/e15062/optionx.htm#i1018570
Lambart
3
C'est une bonne réponse car elle ne vous oblige pas à modifier la configuration de votre projet. En fait, je pense que cela répond le mieux à la question.
Chewy
1
Malheureusement, cela n'a pas fonctionné pour moi, car toutes les classes chargées à partir de ce chemin de classe seront chargées par le chargeur de classe de démarrage, ce qui casse le code qui suppose que Xyz.class.getClassLoader () n'est pas nul.
Njol
@uaaquarius, Pourquoi n'y a-t-il aucun moyen de modifier directement la chaîne de ligne de commande? C'est frustrant.
Pacerier
@uaaquarius, pourquoi est-ce que si j'ajoute mysql-connector-java-5.1.45/mysql-connector-java-5.1.45-bin.jarcomme dépendance en utilisant l'autre méthode sur stackoverflow.com/a/16742141/632951 cela fonctionne, mais -Xbootclasspath/ane pas l' utiliser ?
Pacerier
19

J'utilise Idea 8. dans l'onglet des dépendances de votre module (dans la boîte de dialogue de structure du projet). Ajoutez une "bibliothèque de modules". Là, vous pouvez sélectionner un répertoire Jar à ajouter. Assurez-vous ensuite que le profil d'exécution utilise le chemin de classe et le JDK du module correct lors de son exécution (c'est dans la boîte de dialogue d'exécution de la configuration.

Mike Pone
la source
11

Définissez les "options VM" comme: "-cp $ Classpath $; your_classpath"

Options de VM

zoirs
la source
Cela m'a sauvé la journée.
Bruno Ranschaert
2

Supposons que vous n'ayez besoin que de x: target / classes dans votre chemin de classe . Ensuite, vous ajoutez simplement ce dossier à votre chemin de classe et% IDEA% \ lib \ idea_rt.jar. Maintenant ça va marcher. C'est tout.

Oleksandr Bondarenko
la source
4
La question est de savoir comment ajouter ce dossier à votre chemin de classe dans IDEA?
Pacerier
0

Vous n'avez pas besoin de spécifier le dossier des classes. Intellij devrait pouvoir le charger. Vous obtiendrez cette erreur si "Sortie du compilateur de projet" est vide.

Assurez-vous simplement que la valeur ci-dessous est définie: Paramètres du projet -> Projet -> Sortie du compilateur de projet dans votre dossier projectDir / out

VNN456
la source