Exception in thread "thread-2" java.lang.noclassdeffounderror

Signaler
Messages postés
5
Date d'inscription
jeudi 29 avril 2010
Statut
Membre
Dernière intervention
19 février 2012
-
 Utilisateur anonyme -
Bonjour,
j'ai une application que j'ai faite avec JBuilder2006, quand je la lance avec JBuilder ( compilation + execution) tout marche à merveille, mais quand je l'execute ( par double clique ) à partir de l'executable .exe cette erreur apparet :

Exception in thread "Thread-2" java.lang.NoClassDefFoundError: oracle/dms/instrument/ExecutionContextForJDBC

Est-ce que quelqu'un à une solution à ce problème , merci.

10 réponses

Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
286
Bonjour,

Tu n'as pas exporté JDBC dans ton classpath.

Tu as bien ajouté JDBC dans le classpath de ton projet et pas dans les libraires par défaut d'éclipse ?

Quand tu fais ton export, il doit y avoir un moment ou tu renseignes les libraires que tu veux exporter. Ajoute jdbc.
Messages postés
5
Date d'inscription
jeudi 29 avril 2010
Statut
Membre
Dernière intervention
19 février 2012

Bonjour,
Moi je travail avec JBuilder 2006 et non pas eclipse.
En effet, j'ai ajouté la librairie dans mon classpath du projet (et non pas du projet par défaut), ce qui est pas normal c'est que quand je lance lance l'application avec JBuilder (compiler + exécuter) l'application marche très bien, mais quand je lance directement par l’exécutable généré cette erreur est apparu, je comprend pas ce qui se passe, ça doit surement avoir un lien avec la génération du jar mais je ne sais pas quoi...

Bonjour

Il manque dms.jar dans le classpath de ton application. Je ne sais pas comment ton exécutable est créé. S'il lance une application Java standard, tu dois passer le bon classpath (contenant le chemin de dms.jar et des autres JARs nécessaires dont ceux de JDBC et le pilote du SGBD) comme paramètre de la machine virtuelle. Le fait d'utiliser un IDE ne change rien, tu dois comprendre comment Java fonctionne avant d'utiliser un tel outil, que ce soit JBuilder, Eclipse ou Netbeans. Bon courage.













T.U.E.R (First Person Shooter créé par Julien Gouesse)
Messages postés
5
Date d'inscription
jeudi 29 avril 2010
Statut
Membre
Dernière intervention
19 février 2012

Gouessej : j'ai ajouté les librairie nécéssaires dans le casspath de mon projet ( y compris ojdbc14dms.jar et dms.jar ) mais même problème.
J'ai des information supplémentaires si ça peut vous aider à cerner le problème :
Voilà, moi je programme un application avec JBuilder 2006, et j'utilise Oracle comme BDD, j'ai inclue les librairie additionnelles dans mon projet (comme ojdbc14.jar), quand je compile mob projet et que je l’exécute (avec JBuilder), tout marche à merveille, il récupère les données de la BDD oracle et tout. mais quand j’exécute avec le jar cette erreur est apparue :
http://imageshack.us/photo/my-images/813/erreurbdv2.jpg/

Uploaded with ImageShack.us

mais quand j'ai copié le jar file et je l'ai essayé sur le pc de mon collègue il marche très bien sans aucune erreur.
Est ce que vous avez une idée de quoi il s'agit ? en sachant que j'ai le JRE et le JDK sur mon pc.

Bonjour

Vous êtes trop dépendant de votre IDE, essayez de résoudre ce problème sans ce dernier.

Ce tutoriel d'Oracle explique comment renseigner le classpath d'une Java archive (JAR) :
http://docs.oracle.com/javase/tutorial/deployment/jar/downman.html

Essayez de trouver l'option qui permet de renseigner cet attribut depuis JBuilder ou bien faites ça en ligne de commande. Vous devez y mettre l'ensemble des JARs (dont dms.jar, le pilote odbc et le pilote jdbc d'Oracle, etc...) qui permettent à l'application de se lancer correctement depuis votre IDE. Je pense que votre collègue a dû laisser traîner les dépendances en question directement dans le path ou directement dans la JVM ce qui est une très mauvaise pratique. Bon courage.













T.U.E.R (First Person Shooter créé par Julien Gouesse)
Messages postés
5
Date d'inscription
jeudi 29 avril 2010
Statut
Membre
Dernière intervention
19 février 2012

Je crois aussi que mon collègue a du laisser traîner les dépendance dans la JVM, est ce que tu peux me dire comment le faire pour essayer de comprendre un peut Stp ?!

Il ne faut surtout pas faire ça, il a probablement mis les JARs dans jre/lib. Faire pareil ne vous avancera à rien. Vous devez simplement éditer le manifeste du JAR qui contient la classe principale (qui contient le point d'entrée du programme si je puis dire, la méthode main()) afin d'ajouter les autres JARs dans le classpath. Ces JARs, vous les connaissez déjà puisque vous avez dû les mettre quelque part dans la configuration de votre projet sous JBuilder.








T.U.E.R (First Person Shooter créé par Julien Gouesse)
Messages postés
5
Date d'inscription
jeudi 29 avril 2010
Statut
Membre
Dernière intervention
19 février 2012

Oui je les connais et j'ai déjà essayé avec cette méthode, j'ai ajoutée les JARs files dans le manifest mais rien de nouveau,toujours la même erreur, sincèrement je comprend rien. C'est pour ça que je vous ai dis de m'expliquer ça pour que j'essaye juste pour voir (pas pour le faire définitivement) car c'est pas une bonne solution.

Soit les JARs ne sont pas à l'endroit attendu (celui mentionné dans le classpath) quand vous lancez l'application hors de JBuilder, soit il vous manque une dépendance parmi les JARs mentionnés, soit vous vous êtes planté en mentionnant les JARs dans le classpath.














T.U.E.R (First Person Shooter créé par Julien Gouesse)