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 :

[JDBC]Problème ClassNotFoundException


Sujet :

JDBC Java

  1. #1
    Inactif  
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Par défaut [JDBC]Problème ClassNotFoundException
    Salut a tous,

    J'ai un problème pour me connecter a ma base de donnée MySQL.
    J'ai installer le driver "mysql-connector-java-3.1.12-bin.jar".
    J'ai mis son chemin dans le PATH de Windows XP : "C:\Program Files\Java\jdk1.5.0_06\lib\mysql-connector-java-3.1.12-bin.jar"

    Voila l'extrait de ma connexion
    import java.sql.*;


    public class ConnectionMySQL{
    public Connection connection;

    public ConnectionMySQL(){
    try{
    Class.forName("com.mysql.jdbc.Driver");
    connection=DriverManager.getConnection("jdbc:mysql://localhost/Test", "user", "password");
    }
    catch(Exception e){System.out.println("connexion refuser"+e);}
    }
    public Statement createStatement(){
    Statement ret=null;
    try{
    ret = connection.createStatement();
    }
    catch(SQLException e){System.out.println("error create statement :"+e);}
    return ret;
    }
    public static void main(String arg[]){
    ConnectionMySQL essai = new ConnectionMySQL();
    }
    }
    Mais ca ne marche pas, il me retourne l'erreur suivante :
    connexion refuserjava.lang.ClassNotFoundException: com.mysql.jdbc.Driver

    J'ai fait pas mal de recherche mais pour l'instant rien n'as été concluant.

    Merci de votre aide

  2. #2
    Membre émérite

    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Comment lances tu ton application ?

    Essaie de mettre le jar dans le même répertoire histoire de se faire une idée.

  3. #3
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    Bonjour

    est ce que ta base est demarrée ?

  4. #4
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Citation Envoyé par foobar42
    Mais ca ne marche pas, il me retourne l'erreur suivante :
    [COLOR=Red]connexion refuserjava.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    Erreur dans ton classpath (qui n'a rien à voir avec le Path système)

    Va faire un tour dans la

    http://java.developpez.com/faq/java/...FoundException

  5. #5
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    denisc a raison : c'est la variable classpath qu'il faut changer

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Par défaut
    Ah ui jme demandé si ct vraiment la meme chose. Jv tenté d'aller voir sur le tuto classpath et jv voir si ca marche mieux

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Par défaut
    Jsuis désolé mais j'arrive pas a modifier mon classpath
    J'avais trouvé un tuto sur le forum mais je ne le retrouve plus.
    Pouvez vous m'aidez plizzz car la je commence a peter un plomb et je ne peux pas avancer dans mon projet

    Merci bcq

  8. #8
    Membre éclairé Avatar de Vesperal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 81
    Par défaut
    Soit tu le fais de manière "générale" en ajoutant ton chemin à la variable d'environnement CLASSPATH de windows (déconseillé).

    Soit tu utilise un de ces deux méthodes (conseillé) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javac -classpath tonclasspath
    pour compiler, ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set CLASSPATH=%CLASSPATH%;tonclasspath;
    avant de complier ou lancer ton programme

  9. #9
    Inactif  
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Par défaut
    Alors avec la 2eme méthode ca a l'air de mieux fonctionner mais maintenant j'ai cette erreur :

    connexion refusercom.mysql.jdbc.CommunicationsException: Communications link fai
    lure due to underlying exception:

    ** BEGIN NESTED EXCEPTION **

    java.net.SocketException
    MESSAGE: java.net.ConnectException: Connection refused: connect

    STACKTRACE:

    java.net.SocketException: java.net.ConnectException: Connection refused: connect

    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.ja
    va:156)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2555)
    at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java
    :266)
    at java.sql.DriverManager.getConnection(DriverManager.java:525)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at ConnectionMySQL.<init>(ConnectionMySQL.java:11)
    at ConnectionMySQL.main(ConnectionMySQL.java:24)


    ** END NESTED EXCEPTION **



    Last packet sent to the server was 20 ms ago.

    Mais sinon ya pas une méthode pour fixer le classpath une bonne fois pour toute car si a chaque fois avant de compiler ou de lancer une appli faut taper la 2eme commande c'est pas tres pratique. Surtout que je dois rendre ce projet a des personnes qui n'y connaisse rien donc il faudrai ptete que je fasse un script ou qqchose dans le style nan ?
    Qqun aurai qq explications ??

    Merci

  10. #10
    Inactif  
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Par défaut
    Bon et bien j'ai réussi mais maintenant il me faudrai une méthode pour éviter d'avoir a chaque fois a retaper set classpath....etc

    Merci bcq

  11. #11
    Membre émérite

    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Solution simple et bourrine : faire un bon chtit vieux script .bat qui lance ta commande...

    Après, j'suis sûr que tu peux faire mieux mais je ne sais pas trop comment ^^

  12. #12
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Ou utiliser un IDE un tant soit peu récent qui t'évite d'avoir à tout faire à la main (tu lui indique au départ quels jars tu veux dans ton classpath et il compile en s'adaptant)

  13. #13
    Membre émérite Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Par défaut
    Ou utiliser un IDE un tant soit peu récent qui t'évite d'avoir à tout faire à la main (tu lui indique au départ quels jars tu veux dans ton classpath et il compile en s'adaptant)
    Le pb est toujours le même pour le client. A moins de lui installer un IDE.......

    Le script est un bonne idée.
    Le .bat suffira si le client est sous win.

    bon courage

  14. #14
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Pour le client tu lui crées un script (ou une enveloppe exe sous windows) qui lui réalise ces opérations de façon transparente

  15. #15
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Pour le fixer une fois pour toute, il faut mettre le classpath en variable d'environnement. Cette méthode n'est pas conseillée car si l'on veut développer deux applications en même temps qui utilisents des classpath différents, ça pose problème...
    Sous UNIX :
    éditer le .profile et rajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    export CLASSPATH=.:/RepertoireDeClasses:unJar.jar
    Sous windows XP :
    menu démarrer
    paneau de configuration
    système
    Avancé
    Variables d'environnement
    tu ajoute la variable CLASSPATH dont la valeur est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    .;RepertoireDeClasses;unJar.jar

  16. #16
    Membre éclairé Avatar de Vesperal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 81
    Par défaut
    Hmmm ... C'est ce que j'avais proposé en première possibilité plus haut iohack, en le déconseillant. En effet, surtout s'il veut éxécuter son code sur différents postes, aller toucher aux variables d'environnement de manière générale (et pas juste dans le contexte d'une invite DOS) n'est pas la chose à faire à mon avis, ne serait-ce pour les erreurs que ca peut engendrer.

    La solution serait par éxemple de créer un fichier Start.bat, que tu édites à l'éditeur de texte pour coller dedans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    set CLASSPATH=%CLASSPATH%;tonclasspath;
    java MonProgramme
    Le client n'aura qu'a lancer le .bat, et l'appli se lancera avec le bon classpath.

  17. #17
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Entièrement dacord avec toi !
    C'était juste pour répondre à sa question : comment le fixer une fois pour toute.

  18. #18
    Inactif  
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Par défaut
    Ok merci beaucoup tout le monde je pense que je vais adopter le .bat ca m'a l'air d'être une bonne solution.
    Pour info j'avais essayer de modifier la variable d'environnement sous windows mais ca n'avait pas marché

    Babye

    Edit : Mon .bat a l'air de marcher le seul probleme c'est que l'invite de commande se ferme tout de suite après donc je n'ai pas le temps de voir ce qui c'est passé dedans Y aurai pas une petite commande histoire qu'elle ne s'enleve pas. Jvais chercher aussi de mon coté sur google mon grand ami

    C'est bon j'ai trouvé c'est "PAUSE" qu'il faut utilisé.

    Merci tout le monde

  19. #19
    Membre éclairé Avatar de Vesperal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 81
    Par défaut
    N'oublie pas le

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

Discussions similaires

  1. Réponses: 23
    Dernier message: 11/04/2012, 17h00
  2. Réponses: 6
    Dernier message: 21/11/2009, 13h37
  3. Réponses: 6
    Dernier message: 17/04/2009, 16h53
  4. Réponses: 4
    Dernier message: 27/06/2008, 15h49
  5. Réponses: 1
    Dernier message: 06/12/2006, 14h55

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