web-dev-qa-db-fra.com

java.lang.ClassNotFoundException malgré l'utilisation de la variable d'environnement CLASSPATH

J'essaie de me connecter à la base de données mysql en utilisant Java sur windows7. Malgré l'ajout de l'url complète du fichier jdbcdriver jar dans CLASSPATH, Java.lang.ClassNotFoundException: com.mysql.jdbc.Driver est quelqu'un pourrait-il me dire ce que je manque ici? Cela fonctionne si j'ajoute le fichier jar dans la bibliothèque de projet mais je veux le faire par CLASSPATH lui-même. Mon chemin de classe ressemble à ceci - C:\jython2.5.1\javalib\mysql- connector-Java-5.1.12-bin.jar

Je tiens à préciser que ce n'est pas le projet réel sur lequel je travaille. J'utilise en fait Django avec Jython, qui nécessite le pilote JDBC pour accéder à la base de données. C'est la raison pour laquelle je dois le faire en utilisant CLASSPATH uniquement.

21
Nitin Garg

La variable d'environnement CLASSPATH est uniquement utilisée par la commande Java.exe Et même alors uniquement lorsqu'elle est utilisée sans l'un des arguments -cp, -classpath, -jar. Il est ignoré par les IDE comme Eclipse, Netbeans et IDEA.

Cette variable d'environnement est également considérée dans le monde réel comme une mauvaise pratique car elle rompt la portabilité. C'est à dire. le programme X s'exécutera avec succès tandis que le programme Y ne s'exécutera pas sans modifier le CLASSPATH. C'est seulement "utile" pour Soleil Oracle pour éviter que les démarreurs ne se lassent de taper encore et encore le même chemin de classe dans les arguments -cp Ou -classpath En suivant les tutoriels Java. Dans le monde réel, batch Les fichiers/Shell sont préférés lorsque seule la commande entière avec l'argument -cp/-classpath Est spécifiée.

Dans votre cas, vous utilisez un IDE. Le chemin d'accès aux classes est appelé "Chemin de génération". En clair Java, il représente les deux le chemin de classe compiletime et runtime. Vous pouvez le configurer dans les propriétés du projet. Vous pouvez ajouter un dossier complet, vous pouvez ajouter des fichiers JAR individuels/externes, vous pouvez lier des projets, etc. Faites-en usage. Oubliez l'utilisation de la variable d'environnement CLASSPATH. Ce fut une erreur de Soleil Oracle. Ils ont pensé convaincre les débutants, mais cela a fini par être plus déroutant pour les débutants car ils interprètent incorrectement cette variable d'environnement comme le chemin de classe .

Voir également:

15
BalusC

Ce qui m'a finalement aidé, c'est de copier le mysql-connector-Java-5.1.15-bin.jar dans\jre\lib et dans\jre\lib\ext les deux (!) Même si j'ai fait tout le cirque classpathing Java offre :) L'environnement était cependant pur bloc-notes/ligne de commande.

13
ValGe

Ce qui a fonctionné avec moi en utilisant Netbeans était: Exécuter> Définir la configuration du projet> Personnaliser. Sous Bibliothèques> Ajouter une bibliothèque. Ajout du pilote JDBC MySQL (je suppose qu'il est apparu dans la liste car j'ai copié le fichier jar dans le dossier jre\lib\ext. Et cela a fonctionné de manière transparente.

J'ai essayé de définir classpath mais cela n'a pas fonctionné. J'utilise Netbeans 7.0

9
nandan

faites simplement un clic droit sur votre projet dans "Netbeans" sélectionnez les propriétés puis cliquez sur "bibliothèques" puis cliquez sur "ajouter bibliothèque ..." puis sélectionnez "MySQL JDBC Driver" et cliquez sur "ajouter bibliothèque" puis sur "OK " bouton

3
omid

J'ai également eu ce problème avant, mais après J'ai mis/ajouté mysql-connector-Java-5.1.34-bin.jar (Téléchargez-le depuis ici =) dans le dossier Apache-Tomcat-8.0.15\lib, puis j'ai lancé mon projet, cela a vraiment fonctionné.

Remarque: même après avoir ajouté le fichier jar, l'erreur persiste, puis redémarrez le serveur Tomcat et réexécutez le projet.

3
Kyle

Si vous utilisez maven, ajoutez la dépendance à pom.xml devrait résoudre le problème.

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-Java</artifactId>
    <version>5.1.36</version>
</dependency>
2
Searene
  1. Open Netbeans IDE
  2. Cliquez avec le bouton droit sur votre projet.
  3. Sélectionnez Propriétés.
  4. Sur le côté gauche, cliquez sur Bibliothèques.
  5. Sous l'onglet "Compiler" - cliquez sur le bouton Ajouter un bocal/dossier.
  6. Sélectionnez le fichier téléchargé "mysql-connector-Java-5.1.25-bin.jar" ( Download Connector/J from dev.mysql.com)
  7. Cliquez sur OK
  8. Run Again ... Son travail.
2
Jay Patel

Dans Netbeans IDE il suffit de vérifier les propriétés du projet sur lequel vous travaillez, dans la fenêtre des propriétés allez à la balise 'bibliothèque', dans la boîte de dialogue, ajoutez simplement votre mysql-connector-Java -* *. fichier jar.

1
Dharmik Chauhan

J'ai eu ce même problème dans Netbeans. Parce que j'utilisais un pool de connexions Tomcat tel que défini dans context.xml, j'avais besoin d'ajouter le pot jdbc au projet (Propriétés-> Bibliothèques) et au dossier lib/de mon serveur Tomcat pour qu'il puisse être vu au démarrage.

1
JPB