Cette question aurait pu poser ici le nombre de fois. Après avoir fait quelques recherches sur Google pour l'erreur ci-dessus et avoir fait une mise à jour, je ne comprends pas pourquoi je reçois toujours cette erreur. J'ai déjà mis mon pilote-- mysql-connector-Java-5.1.5-bin dans le classpath:
Java_Home\jre\lib\
Java_Home\jre\lib\ext\
Java_Home\lib
et le code que j'utilise pour me connecter à la base de données mysql est:
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mail","root","");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select message_body from deadletter");
String dbtime;
while (rs.next()) {
dbtime = rs.getString(1);
System.out.println(dbtime);
}
con.close();
}
catch (SQLException e) {
System.out.println("Connection Failed! Check output console");
e.printStackTrace();
}
}
et le stacktrace complet de l'exception ci-dessus est:
Java.lang.ClassNotFoundException: com.mysql.jdbc:Driver
at Java.net.URLClassLoader$1.run(URLClassLoader.Java:200)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.net.URLClassLoader.findClass(URLClassLoader.Java:307)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:307)
at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:301)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:252)
at Java.lang.ClassLoader.loadClassInternal(ClassLoader.Java:320)
at Java.lang.Class.forName0(Native Method)
at Java.lang.Class.forName(Class.Java:169)
at mail.main(mail.Java:114)
Maintenant, qu'est-ce qui ne va pas que je fais ici?
La cause la plus courante est qu’il existe un conflit entre l’origine de chargement de vos classes. Par exemple, si vous avez 2 emplacements et que l’un a des pilotes JDBC et l’autre pas, si votre chargeur de classe se charge depuis le premier emplacement et que certaines classes du premier emplacement souhaitent utiliser le pilote - le pilote n’est pas là. Recherchez donc les fichiers JAR en double qui utilisent votre pilote.
Si vous rencontrez ce problème avec Eclipse, j'ai suivi de nombreuses solutions différentes, mais celle qui a fonctionné pour moi est la suivante:
Cliquez avec le bouton droit sur votre dossier de projet et ouvrez les propriétés.
Dans le panneau de droite, sélectionnez Java Build Path puis accédez à l'onglet Bibliothèques.
Sélectionnez Ajouter des fichiers JAR externes pour importer le pilote mysql.
Dans le panneau de droite, sélectionnez Assemblage de déploiement.
Sélectionnez Ajouter ..., puis sélectionnez Java Entrées du chemin de construction et cliquez sur Suivant.
Vous devriez voir le pilote SQL sur la liste. Sélectionnez-le et cliquez en premier.
Et c'est tout! Essayez de l'exécuter à nouveau! À votre santé!
J'ai le même problème mais j'ai trouvé ceci après une longue recherche: http://www.herongyang.com/JDBC/MySQL-JDBC-Driver-Load-Class.html
Mais j'ai fait du changement. Je mets le pilote dans le même dossier que mon ConTest.Java
fichier et le compiler, résultant en ConTest.class
.
Donc, dans ce dossier ont
ConTest.class
mysql-connector-Java-5.1.14-bin.jar
et j'écris ceci
Java -cp .;mysql-connector-Java-5.1.14-bin.jar ConTest
De cette façon, si vous n'utilisez pas de IDE seulement cmd dans Windows ou Shell sous Linux.
this ans est destiné à l'utilisateur Eclipse ......
d'abord, vérifiez que le fichier jdbc jar est ajouté aux bibliothèques d'oreille ....
si oui ... alors cocher ... dans Web Content-> dossier Web-> lib
et passé ici jdbc fichier jar dans le dossier lib .....
Qu'avez-vous mis exactement dans lib
, jre/lib
ou jre/lib/ext
? Était-ce le pot mysql-connector-Java-5.1.5-bin.jar
ou autre chose (comme un répertoire)?
À propos, je ne le mettrais pas dans lib
, jre/lib
ou jre/lib/ext
, il existe d'autres moyens d'ajouter un fichier jar au classpath. Vous pouvez le faire en l'ajoutant explicitement à la variable d'environnement CLASSPATH. Ou vous pouvez utiliser le -cp
option de Java
. Mais c'est une autre histoire.
Si vous utilisez NetBeans, suivez les étapes suivantes:
1) Télécharger le connecteur à partir d'ici https://www.mysql.com/products/connector/
2) Sélectionnez le pilote JDBC pour mysql
3) cliquez sur Platform Independent (Architecture Independent), Zip Archive
4) Téléchargez le fichier et décompressez-le
5) (Pour Eclipse) Cliquez sur Projet-> Propriétés-> Java Chemin de construction-> Bibliothèques (pour Netbeans) cliquez sur les bibliothèques sur la barre de gauche -> ajouter un fichier jar.
6) Cliquez sur ajouter un pot externe
7) sélectionnez mysql-connector-Java-5.1.40-bin.jar
8) Fait!
Dans NetBeans,
properties
rub
mysql-connector-Java.jar
et appliquerDans netbean Faites un clic droit sur votre projet, puis cliquez sur Bibliothèques, puis sur l'onglet Exécuter, ajoutez une bibliothèque, puis sélectionnez le connecteur mysql.
Ok, je trouve une solution en changeant le chemin de mysql-connector-Java.jar en chemin suivant:
ProjectName/WebContent/Web-inf/lib/mysql-conector-Java.jar
Vous devez donc ajouter le connecteur pour projeter à nouveau et supprimer le précédent.
Vous devriez télécharger connecteur MariaDB .
Ensuite:
Libraries
.Add Jar/Folder
.mariadb-Java-client-2.0.2.jar
que vous venez de télécharger.il suffit de copier et coller le fichier jar du connecteur mysql dans votre dossier de projet, puis de créer le chemin, cela fonctionnera définitivement.
Dans IntelliJ Faites ce qu’ils disent dans Eclipse "Si vous rencontrez ce problème avec Eclipse, j’ai suivi de nombreuses solutions différentes, mais celle qui a fonctionné pour moi est la suivante:
Cliquez avec le bouton droit sur votre dossier de projet et ouvrez les propriétés.
Dans le panneau de droite, sélectionnez Java Build Path puis accédez à l'onglet Bibliothèques.
Sélectionnez Ajouter des fichiers JAR externes pour importer le pilote mysql.
Dans le panneau de droite, sélectionnez Assemblage de déploiement.
Sélectionnez Ajouter ..., puis sélectionnez Java Entrées du chemin de construction et cliquez sur Suivant.
Vous devriez voir le pilote SQL sur la liste. Sélectionnez-le et cliquez en premier.
Et c'est tout! Essayez de l'exécuter à nouveau! À votre santé!"
Ici, nous devons ajouter le fichier jar dans la structure du projet -> Bibliothèques -> + (ajouter)
La seule chose qui a fonctionné pour moi a été de télécharger le fichier mysql-connector-Java-5.0.8-bin.jar directement à partir du site Web de MySQL:
http://dev.mysql.com/downloads/connector/j/3.1.html
Ensuite, si vous utilisez Eclipse, collez ce fichier dans mysql-connector-Java-5.0.8-bin.jar dans le dossier lib WEB-INF.
Si ne fonctionne pas, essayez l'une des solutions affichées dans ce lien: http://javarevisited.blogspot.com/2012/03/jdbc-javalangclassnotfoundexception.html
Ok..Peut-être que je peux aussi apporter ma solution .. Faites un clic droit sur project-properties -> Deployment Assembly configuré avec les bibliothèques Web qui a ce connecteur SQL ... Cela a fonctionné pour moi .. J'espère que cela fonctionne pour vous aussi
J'ai rencontré la même erreur après la mise à niveau de mon Java à 1.8.0_101. Essayez ceci: i. Supprimez le fichier mysql.jar de votre chemin de construction. Ii. Nettoyez le serveur et le projet iii. Ajoutez le fichier jar retour au chemin de construction.
Travaillé pour moi.
La plupart des solutions possibles ont été abordées ci-dessus. D'après mon expérience de ce problème, j'ai placé mysql-connector-jar dans le dossier/WEB-INF/lib du module webapp et cela a bien fonctionné pour moi.
Je garde le bocal mysql-connector avec mon projet plutôt que dans Javahome. En conséquence, vous pouvez être sûr qu'il peut être trouvé en étant sûr que c'est dans le classpath local. Un gros avantage est que vous pouvez plus le projet sur une autre machine et ne pas avoir à vous soucier de (ou oublier) pour le configurer à nouveau. Personnellement, j'aime l'inclure dans le contrôle de version.
Copiez simplement le fichier jar du pilote JDBC MySQL et collez-le dans Tomcat ou dans le dossier lib du serveur. Ça marche pour moi.