[java] driver jdbc Postgresql

driver jdbc Postgresql [java] - Java - Programmation

Marsh Posté le 20-01-2005 à 12:19:12    

J'essaie de me connecter à une base postgresql via un programme java.
La base est installé, des tables créées et les droits donnés.
J'ai téléchargé le driver jdbc sous format "jar" indiqué sur le site www.postgresql.org, je l'ai mis ds un répertoire que j'ai ajouté à mon classpath.
Ms qd j'essai d'initaliser le driver dans mon programme, j'ai une erreur "java.lang.ClassNotFoundException: org.postgresql.Driver"
 
Voici un bout du programme:
 

Code :
  1. String sURL = "jdbc:postgresql://XXXX";
  2. /* Loading data base driver. */
  3. Class.forName("org.postgresql.Driver" ).newInstance();
  4. /* Connecting to database. */
  5. Connection conn = DriverManager.getConnection(sURL);


 
Ca plante du niveau du "Class.forName". J'ai essayé avec et sans le "newInstance()" à la fin, en ajoutant "jdbc" dans la chaine, ms rien n'y fait.
J'ai testé le programme avec une base mysql et ça fonctionne bien (en remplaçant ce qu'il faut).
 
J'ai java 1.4.2, le bon driver jdbc pour cette version, le tout sous windows xp.
 
Merci d'avance :)


Message édité par electricblue le 21-01-2005 à 14:15:33
Reply

Marsh Posté le 20-01-2005 à 12:19:12   

Reply

Marsh Posté le 20-01-2005 à 12:21:59    

Vérifie que la classe en question est bien dans le JAR à l'endroit renseigné. Vérifie ton classpath : le JAR doit s'y trouver explicitement, pas seulement le répertoire dans lequel il se trouve.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 20-01-2005 à 12:34:03    

J'ai testé le coup du nom du jar dans le classpath, ça change rien.
Pour l'emplacement de la classe, j'ai un peu matté les sources ça semblait correspondre. Par contre je sais pas comment "lire" un jar.

Reply

Marsh Posté le 20-01-2005 à 12:42:57    

electricblue a écrit :

J'ai testé le coup du nom du jar dans le classpath, ça change rien.
Pour l'emplacement de la classe, j'ai un peu matté les sources ça semblait correspondre. Par contre je sais pas comment "lire" un jar.


[:kiki] Ca explique pas mal de choses.
 
Bon. Utilise un quelconque archiver, genre WinRAR ou FileZip sous Windows pour naviguer facilement dans le JAR.
 
Fais voir ton classpath aussi.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 20-01-2005 à 13:00:13    

et surtout, va lire le topic classpath, merci.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 20-01-2005 à 13:10:01    

Dans l'archive je trouve bien "Driver.class" dans le chemin "org.postgresql".
 
Mon classpath: C:\pgsqljdbc\postgresql-8.0.309.jdbc3.jar;C:\mysqljdbc

Reply

Marsh Posté le 20-01-2005 à 17:06:38    

electricblue a écrit :

Dans l'archive je trouve bien "Driver.class" dans le chemin "org.postgresql".
 
Mon classpath: C:\pgsqljdbc\postgresql-8.0.309.jdbc3.jar;C:\mysqljdbc


ben logiquement, si ces informations sont vrais, tu ne peux pas pouvoir de ClassNotFoundException ... bizarre ...
 
Tu es bien sûr de l'avoir configuré correctement ton classpath ?  


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 20-01-2005 à 17:19:13    

Vérifie qu'il n'y ait pas de coquille (un simple - à la place d'un _ ou un . mal placé et c'est foutu). Fais un dir C:\pgsqljdbc\postgresql-8.0.309.jdbc3.jar pour être sûr.
 
Tu utilises un truc genre jBuilder ou autre ?


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 20-01-2005 à 17:54:22    

sircam a écrit :


Tu utilises un truc genre jBuilder ou autre ?


100 balles sur sircam.
(reste à voir aussi comment est déclaré le classpath...)


Message édité par the real moins moins le 20-01-2005 à 17:54:37

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 21-01-2005 à 14:39:48    

Non, je lance en ligne de commande dans une console: java -jar jar\monappli.jar
 
Je vérifie bien que les variables d'environnement de la console sont bonnes (notamment le CLASSPATH).
J'ai renommé le driver pour qu'il ait un nom potable (postgresql.jar).
Mais j'ai toujours l'erreur :(

Reply

Marsh Posté le 21-01-2005 à 14:39:48   

Reply

Marsh Posté le 21-01-2005 à 16:29:18    

quand tu lances avec -jar, ca ne prend pas le classpath system, ca utilise celui du meta-inf ... essaye de le lancer comme ca :
 
java -classpath %CLASSPATH%;jar\monappli.jar  la.classe.Principale


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 21-01-2005 à 17:10:19    

Ahhh ça marche, merci bcp ;)
 
Par contre ya un truc que je pige pas: pq en modifiant l'URL et le driver pr que ce soit compatible avec mySQL, et sans changer quoi que ce soit d'autre, ça marche??
Le driver mySQL est de base dans un des chemins utilisé par java??

Reply

Marsh Posté le 21-01-2005 à 17:26:14    

non ... ca ne devrait pas marcher


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 21-01-2005 à 17:41:27    

C'est ce que je pensais, d'où mon incompréhension.
Je ferai plus de tests la semaine prochaine.
 
Sinon comment on peut changer le CLASSPATH du meta-inf?? Moi je n'ai qu'un fichier MANIFEST.MF

Reply

Marsh Posté le 21-01-2005 à 17:42:47    

je voulais parler du manifest ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed