Je sollicite votre aide car cela fait une bonne semaine que je bataille. J'ai même essayé le programme que vous fournissez en vain. Ci joint mon dernier essai, pour lequel je reçois comme réponse :
Pilote chargé
ERREUR : bd manquante ou connexion invalide.
Merci infiniment, mais ça ne marche pas. J'ai reproduit la correction que vous avez bien voulu m'envoyer dans une nouvelle classe Bdd9.
Voici donc le message d'erreur que je reçois :
Error: Could not find or load main class jdbc.Bdd9
Caused by: java.lang.ClassNotFoundException: jdbc.Bdd9 </gras></gras>
KX
Messages postés16722Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention25 septembre 2023126
>
avridhe
22 déc. 2020 à 18:08
Au lieu d'avancer dans ton problème, tu recules, ton programme n'est même plus démarré...
Il faut que ta nouvelle classe Bdd9 soit public, avec une méthode main, écrite dans un fichier Bdd9.java, compilée et que son exécution soit faite en haut du package jdbc.
Bref, tout pareil qu'avec la classe Bdd mais avec Bdd9.
Merci pour l'attention que tu accordes à mon problème....Mais ça ne marche toujours pas. J'ai pourtant copié collé ton première envoi
que voici ;
package jdbc;
je reçois comme réponse :
Error: Could not find or load main class jdbc.Bdd9
Caused by: java.lang.ClassNotFoundException: jdbc.Bdd9
Pourtant il y a le main et la classe est déclarée public. Et c'est compilé automatiquement. J'avoue que je n'y comprends rien d'autant plus que je suis débutant en Java
KX
Messages postés16722Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention25 septembre 2023126 22 déc. 2020 à 20:29
"Et c'est compilé automatiquement."
Par quelle magie ? Tu utilises un IDE ? Lequel ? Comment tu t'en sers ? etc.
Là le problème ne vient pas du code, tu pourrais avoir un simple HelloWorld que ça ne fonctionnerait pas non plus, là Java ne trouve pas ton programme compilé, comme s'il n'y avait aucun code.
Bonsoir, j'avais installé Eclipse 2020 09 mais là il m'affiche 2020 12.
Dans le menu projet j'ai bien coché compilé automatiquement.
Et je viens de tester un programme sur les "listener" il tourne normalement.
J'ai aussi installé Eclipse papyrus. Là il m'avait demandé de mettre à jour Java je l'ai fait.
J'utilise Java SE 14.
J'ai un espace de travail que je lance à l'ouverture d'Eclipse.
Désolé de vous déranger mais là je suis perdu......Merci de m'informer si vous avez une solution
Vous n’avez pas trouvé la réponse que vous recherchez ?
je reçois :
Pilote chargé
ERREUR : bd manquante ou connexion invalide.
Alors que ces lignes sont sous forme de commentaire.
Je me démène comme je peux mais.....En tous cas merci
KX
Messages postés16722Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention25 septembre 2023126 23 déc. 2020 à 09:09
Si tu as encore "ERREUR : bd manquante ou connexion invalide." alors que le code est commenté c'est que tu n'as pas recompilé, tu exécutes une ancienne version du code.
Remarque : Eclipse Papyrus pour un débutant ça ne sert à rien, et comme visiblement tu as un problème avec ton installation d'Eclipse, je te conseille de tout désinstaller, à la limite même Java 14 qui est déprécié, soit tu utilises une LTS (Java 11), soit la toute dernière version (Java 15) mais pas les versions intermédiaires.
Bonjour, l'erreur à commencé à apparaître lorsque j'avais essayé un prg qui n'a pas de "main". Là j'ai exécuté les configurations....avec ce résultat catastrophique. Mais je ne lâche pas.
J'ai supprimé Eclipse papyrus. Je l'ai comme plug in.
J'ai essayé de compiler avec l'invite de commande bin\javac Bdd, mais il me demande le chemin explicite de cette classe.
Le JDK que j'avais installé est SEE 15. qui contient un JRE et la JVM.
Voilà, je termine en vous remerciant et en vous souhaitant un Joyeux noël et de bonnes fêtes de fin d'année.
KX
Messages postés16722Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention25 septembre 2023126 24 déc. 2020 à 09:35
"l'erreur à commencé à apparaître lorsque j'avais essayé un prg qui n'a pas de "main"" Un programme Java doit nécessairement avoir une méthode main, c'est le point d'entrée de son exécution.
C'est ce que j'avais précisé dans un message précédent :
"Il faut que ta nouvelle classe Bdd9 soit public, avec une méthode main, écrite dans un fichier Bdd9.java, compilée et que son exécution soit faite en haut du package jdbc."
"avec l'invite de commande bin\javac Bdd, mais il me demande le chemin explicite de cette classe." C'est pour cela que l'on rajoute généralement le répertoire bin de Java au Path Windows, pour pouvoir exécuter appeler les commandes Java et javac depuis n'importe quel dossier, celui qui contient le code source.
https://www.java.com/fr/download/help/path.html
avridhe
>
KX
Messages postés16722Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention25 septembre 2023 Modifié le 27 déc. 2020 à 22:26
J'ai contourné le problème en supprimant le projet y compris sur disque dur. J'ai créé un nouveau (Le même que le précédent) mais que j'ai appelé Base. Voici le programme et la réponse après exécution :
package base;
Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:odbc: E:\Personnel\ Base de données\ Gestion locative.accdb at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:702) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228) at base.Bdd.main(Bdd.java:25)
Je comprends que le driver n'est pas approprié. Que faire ? Et merci encore une fois.
Nb : Je vous transmettrais le prg "coupable" qui est sans méthode 'main'. Méthode qu'il refuse après l'appel de la classe.
KX
Messages postés16722Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention25 septembre 2023126
>
avridhe
28 déc. 2020 à 13:44
D'une part la valeur de dbUrl est fausse car il ne devrait pas y avoir d'espace entre odbc: et E:
D'autre part, depuis Java 8, le Driver java.sql.DriverManager ne gère plus le protocole odbc.
Vu que tu es en Java 14 il faudrait donc passer par un driver tiers comme UCanAccess qu'il faudra ajouter au classpath d'exécution.
Et bien sûr adapter ton code à ce changement :
String dbUrl = "jdbc:ucanaccess://e:/Personnel/Base de données/Gestion locative.accdb";
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
Bonjour, avant tout encore une fois MERCI.
J'ai téléchargé UCanaccess-5.0.0-bin que j'ai placé dans les dossiers JDK et Base de données mais hélas ça ne marche toujours pas.
Ci suit le prg et la réponse :
Exception in thread "main" java.lang.ClassNotFoundException: net.UCanaccess.jdbc.UCanaccessDriver
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:340)
at base.Bdd2.main(Bdd2.java:14)
KX
Messages postés16722Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention25 septembre 2023126 29 déc. 2020 à 14:08
Bonjour,
"J'ai téléchargé UCanaccess-5.0.0-bin que j'ai placé dans les dossiers JDK" Il ne faut jamais rien modifier dans le JDK, d'une part les modifications apportées impacteraient l'exécution de l'intégralité des programmes Java sur ton PC, y compris ceux que tu n'as pas développé toi même, d'autre part si ça fonctionnait ainsi ce serait uniquement pour ton PC mais les utilisateurs du programme que tu développes ne pourraient pas s'en servir à moins de modifier aussi leur JDK. Ce n'est pas comme ça que c'est censé fonctionner.
ucanaccess-5.0.0.jar comme n'importe quel autre JAR, fournit du code. Ce code tu dois le rajouter à ton classpath comme si c'était le tien, pour compiler (inutile dans ce cas particulier) et exécuter le programme.
Remarque : je suppose ici que le jar est dans le répertoire courant.
avridhe
>
KX
Messages postés16722Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention25 septembre 2023 30 déc. 2020 à 08:44
Bonjour,
j'ai mis les cinq .jar comme préconisé dans ta précieuse aide. Il a été crée une librairie référencie dans le projet Base de données avec tous les éléments rajoutés au classpath du projet. Mais mille fois hélas ça ne marche toujours pas. Le prg étant toujours le même la réponse est :
Exception in thread "main" java.lang.ClassNotFoundException: net.ucAnaccess.jdbc.UcanAccessDriver
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:340)
at base.Bdd2.main(Bdd2.java:14)
Le driver pose toujours problème.
Merci
KX
Messages postés16722Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention25 septembre 2023126
>
avridhe
30 déc. 2020 à 11:16
Parce que tu ne sais pas faire un copier-coller...
Dans ton code d'hier tu avais "net.Ucanaccess.jdbc.UcanaccessDriver" Dans ton exception d'hier tu avais "net.UCanaccess.jdbc.UCanaccessDriver"
Dans ton exception aujourd'hui tu as "net.ucAnaccess.jdbc.UcanAccessDriver"
avridhe
>
KX
Messages postés16722Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention25 septembre 2023 Modifié le 31 déc. 2020 à 18:28
Bonsoir, décidemment je n'avance pas, et désolé d'abuser de votre patience . Voici le programme tel qu'il est maintenant :
Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:ucanAccess:\E:\Personnel\Base de données\Gestion locative.accdb
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:702)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
at base.Bdd2.main(Bdd2.java:16)
Là je pense, que ça s'améliore car il y a moins d'exception.
Je vais essayer de décortiquer la documentation.
Merci et mes meilleurs veux pour la nouvelle année à vous et à toute l'équipe de "Code Sources.
KX
Messages postés16722Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention25 septembre 2023126
>
avridhe
31 déc. 2020 à 18:31
Je pense que dbUrl est faux, il faudrait le réécrire comme je l'avais mis dans mon exemple (qui reprend ce qui est dit dans la documentation)
String dbUrl = "jdbc:ucanaccess://e:/Personnel/Base de données/Gestion locative.accdb";
Modifié le 22 déc. 2020 à 17:51
Voici donc le message d'erreur que je reçois :
Error: Could not find or load main class jdbc.Bdd9
Caused by: java.lang.ClassNotFoundException: jdbc.Bdd9 </gras></gras>
22 déc. 2020 à 18:08
Il faut que ta nouvelle classe Bdd9 soit public, avec une méthode main, écrite dans un fichier Bdd9.java, compilée et que son exécution soit faite en haut du package jdbc.
Bref, tout pareil qu'avec la classe Bdd mais avec Bdd9.