115 votes

java.lang.ClassNotFoundException : com.mysql.jdbc.Driver dans Eclipse

Qu'est-ce qui ne va pas avec le code ? Il y a beaucoup d'erreurs pendant le débogage. J'écris un code pour une classe singleton pour se connecter avec la base de données mysql.

Voici mon code

package com.glomindz.mercuri.util;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;

public class MySingleTon {
    String url = "jdbc:mysql://localhost:3306/";
    String dbName = "test";
    String driver = "com.mysql.jdbc.Driver";
    String userName = "root";
    String password = "";

    private static MySingleTon myObj;   
    private Connection Con ;
    private MySingleTon() {
        System.out.println("Hello");
        Con= createConnection();
    }

    @SuppressWarnings("rawtypes")
    public Connection createConnection() {
        Connection connection = null;
        try {
            // Load the JDBC driver
            Class driver_class = Class.forName(driver);
            Driver driver = (Driver) driver_class.newInstance();
            DriverManager.registerDriver(driver);
            connection = DriverManager.getConnection(url + dbName);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        }
        return connection;
    }

    /**
     * Create a static method to get instance.
     */
    public static MySingleTon getInstance() {
        if (myObj == null) {
            myObj = new MySingleTon();
        }
        return myObj;
    }

    public static void main(String a[]) {
        MySingleTon st = MySingleTon.getInstance();
    }
}

Je suis novice en Java. Veuillez m'aider.

150voto

R9J Points 1378

Il semble que le la bibliothèque de connectivité mysql n'est pas incluse dans le projet. Résolvez le problème en suivant l'une des solutions proposées :

  • SOLUTION POUR LES PROJETS MAVEN

Ajoutez la dépendance mysql-connector au fichier pom.xml du projet :

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.39</version>
</dependency>

Vous trouverez ici toutes les versions : https://mvnrepository.com/artifact/mysql/mysql-connector-java

  • SOLUTION TOUS PROJETS

Ajoutez manuellement la bibliothèque jar au projet.

Cliquez à droite sur le projet -- > chemin de construction -- > configurer le chemin de construction.

Sur Libraries Tab presse Add External Jar et Select votre pot.

Vous pouvez trouver le zip pour mysql-connector ici

  • Explication :

Lors de la construction du projet, java vous lance une exception car un fichier (la classe com.mysql.jdbc.Driver) de la bibliothèque de connectivité mysql n'est pas trouvé. La solution consiste à ajouter la bibliothèque au projet, et java trouvera la classe com.mysql.jdbc.Driver.

57voto

Asad Points 506

Si vous avez obtenu l'erreur dans votre IDE (erreur de compilation), vous devez ajouter votre fichier jar mysql-connector à vos librairies et l'ajouter à votre bibliothèque référencée du projet également.

Si vous obtenez cette erreur lorsque vous l'exécutez, c'est probablement parce que vous n'avez pas inclus le fichier JAR mysql-connector dans le dossier lib de votre serveur Web.

Ajouter mysql-connector-java-5.1.25-bin.jar à votre classpath et aussi au répertoire lib de votre serveur web. Le chemin de la librairie de Tomcat est donné en exemple Tomcat 6.0\lib

27voto

Tahir Hussain Mir Points 1690

Tout le monde a écrit une réponse mais je suis toujours surpris que personne n'ait répondu en utilisant la meilleure méthode simple.
La réponse des personnes qui incluent le fichier jar. Mais, l'erreur se produira toujours.

La raison en est que le jar n'est pas déployé lorsque le projet est exécuté. Donc, ce que nous devons faire, c'est dire à l'IDE de déployer ce jar également.

Les personnes ici présentes ont répondu de nombreuses fois que le fichier jar devait être placé dans le dossier lib de WEB-INF. Cela semble correct, mais pourquoi le faire manuellement. Il existe un moyen simple. Vérifiez les étapes ci-dessous :

Étape 1 : Si vous n'avez pas référencé le fichier jar dans le projet, référencez-le comme suit.

Faites un clic droit sur le projet et allez dans les propriétés du projet. Ensuite, allez dans le chemin de construction de java, puis ajoutez le fichier jar externe via ce chemin.

Mais cela ne résoudra toujours pas le problème car l'ajout du jar externe via le chemin de construction n'aide qu'à compiler les classes, et le jar ne sera pas déployé lorsque vous exécuterez le projet. Pour cela, suivez cette étape

Faites un clic droit sur le projet et allez dans les propriétés du projet. Ensuite, allez dans la section Assemblée de déploiement puis appuyez sur Ajouter puis allez à la page entrées du chemin de construction de java et ajoutez vos bibliothèques, que ce soit jstl, mysql ou tout autre fichier jar. Ajoutez-les au déploiement. Ci-dessous les deux images qui le montrent.

Before Adding

After Adding

15voto

naXa Points 862

Pour Gradle -Vous avez besoin d'une dépendance pour les projets basés sur la technologie de l'information. Connecteur Java MySQL :

dependencies {
    compile 'mysql:mysql-connector-java:6.0.+'
}

14voto

Narendra Pathai Points 12172

Vous devrez inclure le driver jar pour MySQL. Connecteur MySQL Jar dans votre classpath.

Si vous utilisez Eclipse : Comment ajouter des bibliothèques dépendantes dans Eclipse

Si vous utilisez la ligne de commande, incluez le chemin vers le jar du pilote en utilisant le paramètre -cp de java.

java -cp C:\lib\* Main

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