le driver marche mode commande mais pas sous ECLIPSE[RESOLU]

Modérateurs : graffiop, jmdouin, agoncal, mlebihan

xavier
Messages : 148
Inscription : 13 oct. 2007 16:28
Localisation : valenciennes

le driver marche mode commande mais pas sous ECLIPSE[RESOLU]

Message par xavier » 04 nov. 2007 17:10

Bonjour,
j'ai déjà envoyé un message à ce sujet : mon driver JDBC ne s'enregistre pas. J'ai essayé de lancer le programme basique qui nous ai fourni "HelloPetstore". Le programme plante à la ligne suivante :

Code : Tout sélectionner

Class.forName("com.mysql.jdbc.Driver");
J'ai la sortie suivante d'erreurs :

Code : Tout sélectionner

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:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:164)
	at HelloPetstore.main(HelloPetstore.java:9)
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
	at HelloPetstore.main(HelloPetstore.java:14)
Je ne comprends pas : j'ai téléchargé le driver JDBC que j'ai mis dans C:\wamp\mysql\lib, puis j'ai rajouté le chemin du ".jar" correspondant dans le classpath (variable d'environnement). Et visiblement il ne veut pas enregistrer mon driver. Est-ce que quelqu'un aurait une idée ? Merci d'avance !

Xavier
Dernière édition par xavier le 05 nov. 2007 20:03, édité 2 fois.

remit
Messages : 51
Inscription : 13 oct. 2007 17:28

Message par remit » 04 nov. 2007 17:27

Quelle est exactement la ligne de commande ?

Elle devrait être par exemple java -cp répertoire de HelloPetstore.class;c:\wamp\mysql\lib\mysql-connector-java-5.1.5-bin.jar HelloPetstore ecrire.

xavier
Messages : 148
Inscription : 13 oct. 2007 16:28
Localisation : valenciennes

Message par xavier » 04 nov. 2007 18:14

Bonjour,
evidemment j'avais lancé ce programme sous ECLIPSE donc ca ne pouvait pas marcher. Cependant je l'ai lancé en mode console :

1) je me suis placé dans le répertoire de mon fichier HelloPetstore.java

2) je l'ai compilé : javac HelloPetstore.java

3) j'ai lancé la commande que tu m'as donné :

Code : Tout sélectionner

java -cp .;c:\wamp\mysql\lib\mysql-connector-java-5.1.5-bin.jar HelloPetstore ecrire
et j'ai l'erreur suivante :

Code : Tout sélectionner

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException : Unknown database 'petstore'
    at ....
    at ...etc...
    at HelloPetstore.ecrire(HelloPetstore.java:27)
    at HelloPetstore.main(HelloPetstore.java:15)
Il ne reconnait pas la base de données "petstore". De toute manière, j'ai un problème avec le driver JDBC, je crois.
Merci pour ta réponse.
Xavier

remit
Messages : 51
Inscription : 13 oct. 2007 17:28

Message par remit » 04 nov. 2007 18:29

Pour exécuter l'exemple, il faut créer la base petstore dans MySQL, puis y créer la table HELLO_PETSTORE.

xavier
Messages : 148
Inscription : 13 oct. 2007 16:28
Localisation : valenciennes

Message par xavier » 04 nov. 2007 18:58

Rebonsoir,
excuse moi, je corrigeais l'erreur pendant que tu m'envoyais ta réponse. En fait tout marche bien. visiblement le driver est enregistré ainsi que la base reconnue.
Du coup je ne comprends pas pourquoi j'ai une erreur à l'éxécution du programme "Menucatalog" (voir le sujet dans le forum un peu plus loin). Si tu peux m'aider sur ce sujet sachant que le programme "HelloPetstore" marche !, Merci d'avance.

Xavier

xavier
Messages : 148
Inscription : 13 oct. 2007 16:28
Localisation : valenciennes

Message par xavier » 05 nov. 2007 10:00

Bonjour,
Je ne m'en sort pas Help !!!. Je vous résume la situation : j'ai lancé la classe "HelloPetstore" en mode commande avec la ligne de commande suivante :

Code : Tout sélectionner

java -cp répertoire de HelloPetstore.class;c:\wamp\mysql\lib\mysql-connector-java-5.1.5-bin.jar HelloPetstore ecrire
Tout fonctionne à merveille. Seulement lorsque j'utilise ECLIPSE pour lancer "HelloPetstore" avec le paramètre "ecrire" j'ai un message d'erreur suivant :

Code : Tout sélectionner

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:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:164)
	at HelloPetstore.main(HelloPetstore.java:9)
java.sql.SQLException: No suitable driver
	at java.sql.DriverManager.getConnection(DriverManager.java:545)
	at java.sql.DriverManager.getConnection(DriverManager.java:171)
	at HelloPetstore.lire(HelloPetstore.java:53)
	at HelloPetstore.main(HelloPetstore.java:17)
Visiblement il ne reconnait pas le driver sous ECLIPSE alors qu'il le reconnait en mode de commande. Il lève une SQL Exception. Je ne comprends pas pourquoi. Auriez-vous une idée ? Merci d'avance pour votre réponse.

Xavier.

mlebihan
Messages : 114
Inscription : 09 févr. 2007 1:03

Message par mlebihan » 05 nov. 2007 13:04

Merci de ne pas m'envoyer d'e-mail personnel sur ce sujet.

Votre environnement de développement vous appartient, et c'est vous qui devez savoir le mettre en oeuvre.
Nous nous assurons seulement que la partie ant et les programmes correcteurs fonctionnent, et c'est votre cas en mode ligne de commande.

Celui qui utlise un IDE doit savoir le manipuler seul, ou à l'aide des autres auditeurs sur le forum. Que ce soit NetBeans, Eclipse ou IntelliJ. Nous n'apportons pas d'assistance sur les environnements intégrés de développement.


Cordialement,

Marc Le Bihan.

graffiop
Messages : 663
Inscription : 21 juin 2005 14:05

Message par graffiop » 05 nov. 2007 13:08

J'avais fait express de reproduire ce type d'erreur lors du cours sur JDBC, pendant l'exécution du programme de démo PrintAllEmployees.

Le message

Code : Tout sélectionner

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
est clair ; la classe com.mysql.jdbc.Driver n'a pas été trouvée ... car la librairie mysql.jar n'est pas dans le CLASSPATH de votre projet Eclipse.

=> la rajouter (Project->Properties->Java BuildPath->Libraries->Add Externals Jars)

Répondre