IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Erreur "ClassNotFoundException" sur com.mysql.jdbc.Driver malgré bon paramétrage


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Par défaut Erreur "ClassNotFoundException" sur com.mysql.jdbc.Driver malgré bon paramétrage
    salut tout le monde.

    bon le titre est assez explicite, à savoir que :

    mon connecteur (fichier .jar) est sur le disque, à un chemin qu'on va appeler "chemJar" (pour simplifier les choses).

    ce chemin est déclaré au complet avec le nom du fichier jar dans le classpath.

    dans mon code que voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public void OuvrirMysqlConnexion()
    	{
    		try
    		{
    			Class.forName("com.mysql.jdbc.Driver").newInstance();
    			connexion = DriverManager.getConnection("jdbc:mysql://" + szServ + "/" + szBdd + "?user=" + szUser + "&password='" + szPwd + "'");
    		}
    		catch (Exception exp)
    		{
    			System.out.println("echec DataBase.OuvrirMysqlConnexion : " + exp.getMessage());
    		}
    	}
    j'ai l'anomalie suivante :

    echec DataBase.OuvrirMysqlConnexion : com.mysql.jdbc.Driver
    erreur : java.lang.NullPointerException
    quel est mon souci ? j'arrive pas à l'identifier.

    merci pour votre aide.

  2. #2
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    C'est très clairement un problème de classpath.

    Fais-voir ta ligne de commande pour exécuter ton code

  3. #3
    Membre émérite

    Homme Profil pro
    Ingénieur R&D en informatique
    Inscrit en
    Août 2011
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur R&D en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 313
    Par défaut
    Bonjour,

    Pour commencer, je ne comprends pas très bien ta connexion à ta base de données avec ton instruction :
    connexion = DriverManager.getConnection("jdbc:mysql://" + szServ + "/" + szBdd + "?user=" + szUser + "&password='" + szPwd + "'");
    Si mes souvenirs sont exacts, getConnection prends trois paramètres que sont l'url jdbc pour atteindre ta BD, le user et le password de ton SGBD. i.e
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connexion = DriverManager.getConnection("jdbc:mysql://" + szServ + "/" + szBdd,  szUser,  szPwd) ;
    Pour l'erreur que t'as, je me demandais si t'as chargé le jar jdbc de ta BD via éclipse ou netbeans suivant ce que t’utilise.

    Avec éclipse c'est à peu près: clique droit sur ton projet, puis properties-->Java Build path-->Libraries-->Add jar, et là t'indique le chemin chemjar où se trouve ce jar là pour qu'il puisse être intégré dans le classpath.

    Cordialement.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Par défaut
    merci pour vos réponses.

    je vous donne ma commande d'exécution de tete car, n'ayant pas acces au poste où j'ai fais ca à cette heure ci, je corrigerai demain si je me trompe.

    alors mon fichier main étant dans un répertoire que j'ai appelé "Resto", constituant un package qui se trouve dans le répertoire courant, voici ma commande :

    java -cp . Resto.main

    pour ma méthode de connexion mister_kool, je peux en effet me tromper. c'est la 1ere fois que je fais ca, je débute un peu en java, donc en phase de découverte. mais j'ai trouvé ce que j'ai fais sur un site ou un forum du coup je l'ai mis en place.

    en revanche, pour l'instant je n'utilise aucun IDE, pour l'instant le fais mes classes avec Notepad++ et compile et exécute en ligne de commande. ca me permet de mieux comprendre le fonctionnement et de mieux maitriser tout ca avant de passer aux IDE;

    merci à vous

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Par défaut
    je confirme que ma commande d'exécution donnée ci dessus est la commande exécutée qui me génère mon anomalie.

  6. #6
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Alors tu devrais avoir quelque chose comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -cp ./path/to/mysql-connector-j.jar resto.Main
    si dans ton main tu as une déclaration

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Par défaut
    j'ai effectivement la déclaration du package dans mon main, conformément au nom du répertoire "Resto".

    en revanche lorsque j'exécute le :

    java -cp CheminCompletDuConnecteurMysql.jar Resto.Main

    => impossible de trouver ou charger la classe principale Resto.Main

    pour info, ma classe s'appelle bien "Main" avec la methode static "main" dans un fichier "Main.java", mon package est bien Resto (non resto), et cette derniere ligne de commande a été exécutée en étant situé dans le répertoire où se trouve le Resto.

    Merci de votre retour.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/01/2013, 13h48
  2. Réponses: 23
    Dernier message: 11/04/2012, 17h00
  3. Réponses: 1
    Dernier message: 16/04/2010, 03h05
  4. Réponses: 6
    Dernier message: 17/04/2009, 16h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo