[JAVA] java.lang.NoClassDefFoundError
Résolu/Fermé
carolcica
Messages postés
16
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
10 juin 2008
-
4 juin 2008 à 12:37
carolcica Messages postés 16 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 10 juin 2008 - 5 juin 2008 à 12:43
carolcica Messages postés 16 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 10 juin 2008 - 5 juin 2008 à 12:43
A voir également:
- Noclassdeffounderror java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Télécharger jeux java gameloft gratuit - Forum Mobile
- Java décompiler - Télécharger - Langages
6 réponses
carolcica
Messages postés
16
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
10 juin 2008
8
5 juin 2008 à 12:43
5 juin 2008 à 12:43
Pour info : problème résolu de cette façon : en passant à Eclipse :)
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
4 juin 2008 à 12:55
4 juin 2008 à 12:55
Salut,
Plus d'infos nécessaires pour essayer de résoudre ton souci. Exception obtenue depuis un IDE (lequel?) ou en ligne de commande?
Si en ligne de commande, peux-tu poster le fichier bat (ou la suite complète de lignes que tu saisis dans une fenêtre DOS) de lancement?
++
Plus d'infos nécessaires pour essayer de résoudre ton souci. Exception obtenue depuis un IDE (lequel?) ou en ligne de commande?
Si en ligne de commande, peux-tu poster le fichier bat (ou la suite complète de lignes que tu saisis dans une fenêtre DOS) de lancement?
++
carolcica
Messages postés
16
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
10 juin 2008
8
4 juin 2008 à 13:02
4 juin 2008 à 13:02
Ah oui désolée j'ai posté le second message à l'origine pour préciser ça et j'ai oublié...
C'est depuis NetBeans 6.0.1
C'est depuis NetBeans 6.0.1
carolcica
Messages postés
16
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
10 juin 2008
8
4 juin 2008 à 13:03
4 juin 2008 à 13:03
Rebonjour,
Quelques petites précisions peut-être :
-Le MyListener que j'ai implémenté, en fait pour tester j'ai copié un des listeners de la librairie.
-Je viens de me rendre compte que c'est peut-être pour ça que ça bug : en compilant le MyListener, j'ai une erreur de compil. Du coup, à mon avis c'est pour ça que j'ai le problème expliqué ds mon premier message. Ce qui m'amène à une deuxième question... c'est parti :
L'erreur de compil c'est "incompatible types", voilà ce qu'il me dit :
J'ai bien importé au début de la classe le package es.ull.isaatc.simulation.ResourceType ok ?!
ResourceTypeList est une TreeMap.
Je reprécise que quand j'appelle exactement le même listener mais celui de la librairie, il n'y a aucun souci.
Tous ces problèmes me dépassent c'est horrible.
Merci de votre aide :)
Quelques petites précisions peut-être :
-Le MyListener que j'ai implémenté, en fait pour tester j'ai copié un des listeners de la librairie.
-Je viens de me rendre compte que c'est peut-être pour ça que ça bug : en compilant le MyListener, j'ai une erreur de compil. Du coup, à mon avis c'est pour ça que j'ai le problème expliqué ds mon premier message. Ce qui m'amène à une deuxième question... c'est parti :
L'erreur de compil c'est "incompatible types", voilà ce qu'il me dit :
found : simulation.ResourceType required: es.ull.isaatc.simulation.ResourceType for (ResourceType rt : simul.getResourceTypeList().values()) {
J'ai bien importé au début de la classe le package es.ull.isaatc.simulation.ResourceType ok ?!
ResourceTypeList est une TreeMap.
Je reprécise que quand j'appelle exactement le même listener mais celui de la librairie, il n'y a aucun souci.
Tous ces problèmes me dépassent c'est horrible.
Merci de votre aide :)
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
4 juin 2008 à 13:17
4 juin 2008 à 13:17
"Tous ces problèmes me dépassent c'est horrible." <== :-D:-D
Incompatible types: je crois qu'il s'agit d'un problème de cast, i.e. la méthode simul.getResourceTypeList().values() te retourne probablement une List (ou Collection) d'objets de type es.ull.isaatc.simulation.ResourceType et tu essaies d'utiliser ton objet "maison" qui n'est pas compatible...
Pistes:
1. ton objet maison doit implementer.étendre es.ull.isaatc.simulation.ResourceType si possible (il faut que es.ull.isaatc.simulation.ResourceType soit défini avec un "public" à l'origine, sinon ça ne marche pas)
2. si 1. échoue et tu as besoin ABSOLUMENT de le faire, tu peux tricher, à savoir:
a- créer le même package que celui utilisé par la bibliothèque tierce (es.ull.isaatc.simulation)
b- y copier la classe es.ull.isaatc.simulation.ResourceType
c- créer ton listener dans ce package qui étend celui d'origine et le modifie là où tu souhaites
d- créer un jar avec ces 2 classes
e- mettre ce jar dans le CLASSPATH avant les autres jars (==> il sera chargé en 1er et cela marchera)
Désavantage de la 2ème méthode: si jamais tu fais une mise à jour ce la librairie tierce, il faudra refaire les étapes 2b, 2d, 2e + vérification que ton listener maison est toujours compatible avec la nouvelle version de es.ull.isaatc.simulation.ResourceType
HTH,
++
Incompatible types: je crois qu'il s'agit d'un problème de cast, i.e. la méthode simul.getResourceTypeList().values() te retourne probablement une List (ou Collection) d'objets de type es.ull.isaatc.simulation.ResourceType et tu essaies d'utiliser ton objet "maison" qui n'est pas compatible...
Pistes:
1. ton objet maison doit implementer.étendre es.ull.isaatc.simulation.ResourceType si possible (il faut que es.ull.isaatc.simulation.ResourceType soit défini avec un "public" à l'origine, sinon ça ne marche pas)
2. si 1. échoue et tu as besoin ABSOLUMENT de le faire, tu peux tricher, à savoir:
a- créer le même package que celui utilisé par la bibliothèque tierce (es.ull.isaatc.simulation)
b- y copier la classe es.ull.isaatc.simulation.ResourceType
c- créer ton listener dans ce package qui étend celui d'origine et le modifie là où tu souhaites
d- créer un jar avec ces 2 classes
e- mettre ce jar dans le CLASSPATH avant les autres jars (==> il sera chargé en 1er et cela marchera)
Désavantage de la 2ème méthode: si jamais tu fais une mise à jour ce la librairie tierce, il faudra refaire les étapes 2b, 2d, 2e + vérification que ton listener maison est toujours compatible avec la nouvelle version de es.ull.isaatc.simulation.ResourceType
HTH,
++
carolcica
Messages postés
16
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
10 juin 2008
8
>
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
4 juin 2008 à 13:28
4 juin 2008 à 13:28
Merci pour ta réponse, une autre petite question : de quel "objet maison" parles-tu ? Du "MyListener" que j'ai créé ?
Je n'ai pas tout compris là :-/ (je suis vraiment naze je sais...)
Là je viens de tenter de compiler la classe MyListener en ayant supprimé (enfin, commenté) l'intérieur de la fonction qui posait problème. Je ne peux pas supprimer la fonction car cette classe en étend une autre, PeriodicListener, de la librairie et du coup si je vire une des méthodes : PAS CONTENT.
Bref, en commentant l'intérieur de cette méthode ça compile bien sans problème.
Du coup, j'essaye d'éxécuter ma simulation, et là ça ne me met pas d'erreur... enfin peut être que ça en mettrait si ça se terminait, car si normalement en 2 secondes c'est fait, là au bout de 30 secondes je n'ai toujours rien...
Donc bon je suis sûre que le problème vient du ResourceType c'est déjà ça, mais je n'ai pas trop compris ta réponse Sandul...
Je n'ai pas tout compris là :-/ (je suis vraiment naze je sais...)
Là je viens de tenter de compiler la classe MyListener en ayant supprimé (enfin, commenté) l'intérieur de la fonction qui posait problème. Je ne peux pas supprimer la fonction car cette classe en étend une autre, PeriodicListener, de la librairie et du coup si je vire une des méthodes : PAS CONTENT.
Bref, en commentant l'intérieur de cette méthode ça compile bien sans problème.
Du coup, j'essaye d'éxécuter ma simulation, et là ça ne me met pas d'erreur... enfin peut être que ça en mettrait si ça se terminait, car si normalement en 2 secondes c'est fait, là au bout de 30 secondes je n'ai toujours rien...
Donc bon je suis sûre que le problème vient du ResourceType c'est déjà ça, mais je n'ai pas trop compris ta réponse Sandul...
carolcica
Messages postés
16
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
10 juin 2008
8
>
carolcica
Messages postés
16
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
10 juin 2008
4 juin 2008 à 13:36
4 juin 2008 à 13:36
Je m'autoréponds pour complêter un peu les explications :
J'ai donc copié tout l'intérieur de la classe ResourceStdUsageListener dans ma classe MyListener, pour voir si ça fonctionne et donc non.
MyListener étend alors PeriodicListener qui implémente SimulationListener, SimulationObjectListener (super cool non ?!)
Et donc dans MyListener j'ai une méthode que je dois "override" :
Et donc voilà effectivement la méthode
J'ai donc copié tout l'intérieur de la classe ResourceStdUsageListener dans ma classe MyListener, pour voir si ça fonctionne et donc non.
MyListener étend alors PeriodicListener qui implémente SimulationListener, SimulationObjectListener (super cool non ?!)
Et donc dans MyListener j'ai une méthode que je dois "override" :
public void infoEmited(SimulationEndInfo info) { for (ResourceUsage rUsageTime : resUsage.values()) rUsageTime.simulationEnd(info.getSimulation().getEndTs()); // Analize how much time has been dedicated in each rol rolTime = new TreeMap<Integer, double[]>(); for (ResourceType rt : simul.getResourceTypeList().values()) { double[] time = new double[nPeriods]; for (ResourceUsage resUsageTime : resUsage.values()) { double[] resTime = resUsageTime.getUsageTime(rt.getIdentifier()); if (resTime != null) // the resource has been used as rol rt for (int j = 0; j < nPeriods; j++) time[j] += resTime[j]; } rolTime.put(rt.getIdentifier(), time); } }
Et donc voilà effectivement la méthode
simul.getResourceTypeList().values()retourne bien une Collection pour confirmer ce qu'a dit Sandul.
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
4 juin 2008 à 14:07
4 juin 2008 à 14:07
Humpffff...
Yadansteslistenersunehiérarchiecomplexe, :), je vais regarder un peu tout ça après une tite clope; sinon, vi, l'objet maison en question était MyListener
++
Yadansteslistenersunehiérarchiecomplexe, :), je vais regarder un peu tout ça après une tite clope; sinon, vi, l'objet maison en question était MyListener
++
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
4 juin 2008 à 14:30
4 juin 2008 à 14:30
1. how on earth fait-on pour avoir des italiques, du gras etc. sur ce forum? 'Coz mon firefox n'affiche pas de boutons pour ce faire, est-ce que l'on tape (eurk!) des <b>...</b> etc. ?
2. Résumons la situation:
Tu as un code qui compile, avec un MyListener qui devrait être appelé et dans lequel tu as fait des modifs; notamment, la méthode infoEmited (cha devrait être infoEmitted, avec 2 t, mais bon... :)) surchargée. Première question:
Est-ce que ton programme passe par là (par infoEmited)? As-tu essayé de mettre un breakpoint dedans ou d'insérer une ligne System.out.println("m'enfin, chuis bien là, mais cha ne marche toujours pas"); ?
[En fait, en cogitant encore et encore, ma première question est la seule... pour l'instant...]
++
2. Résumons la situation:
Tu as un code qui compile, avec un MyListener qui devrait être appelé et dans lequel tu as fait des modifs; notamment, la méthode infoEmited (cha devrait être infoEmitted, avec 2 t, mais bon... :)) surchargée. Première question:
Est-ce que ton programme passe par là (par infoEmited)? As-tu essayé de mettre un breakpoint dedans ou d'insérer une ligne System.out.println("m'enfin, chuis bien là, mais cha ne marche toujours pas"); ?
[En fait, en cogitant encore et encore, ma première question est la seule... pour l'instant...]
++
carolcica
Messages postés
16
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
10 juin 2008
8
4 juin 2008 à 14:40
4 juin 2008 à 14:40
Alors pour répondre à ta première question c'est...
Oui c'est compliqué l'architecture des listeners (c'est normal c'est pas moi qui l'ai fait)...
Alors là je viens de retester en mettant un System.out.println("caca") (oui chacun son style pour les tests...) et effectivement ça ne l'affiche pas .
MAIS j'ai du nouveau : maintenant je n'ai plus la même erreur j'ai un nullPointerException hahahahahaha quelle bonne blague, alors là je n'y comprends vraiment plus rien car je n'ai rien changé. Donc dans une autre méthode (qui s'appelle infoEmited aussi mais qui a un argument différent de l'autre). Mais le "caca" ne s'affiche pas non plus de toute manière.
Oui c'est compliqué l'architecture des listeners (c'est normal c'est pas moi qui l'ai fait)...
Alors là je viens de retester en mettant un System.out.println("caca") (oui chacun son style pour les tests...) et effectivement ça ne l'affiche pas .
MAIS j'ai du nouveau : maintenant je n'ai plus la même erreur j'ai un nullPointerException hahahahahaha quelle bonne blague, alors là je n'y comprends vraiment plus rien car je n'ai rien changé. Donc dans une autre méthode (qui s'appelle infoEmited aussi mais qui a un argument différent de l'autre). Mais le "caca" ne s'affiche pas non plus de toute manière.
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
>
carolcica
Messages postés
16
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
10 juin 2008
4 juin 2008 à 15:00
4 juin 2008 à 15:00
Cha avance à une folle vitesse ;-)
Bon, pour ton NullPointerException: yadeschoz créées par Dieu pour faciliter not' vie (on fera abstraction de ce qu'il a dit après l'épisode Adam et Eve); parmi celles-ci, la possibilité de s'arrêter sur une exception de type NullPointerException. Je sais le faire sous Eclipse, mais aucune idée sous NetBeans, faudra chercher comment faire ceci sous ton IDE. Une fois l'exception NullPointerException cochée, tu lances l'appli en mode debug et à l'exécution NetBeans va s'arrêter sur la ligne merdique; tu auras accès au contexte (avec la possibilité de consulter la valeur des différentes variables qui traînent dans le coin)...
Bon courage et tiens-moi au courant,
++
Bon, pour ton NullPointerException: yadeschoz créées par Dieu pour faciliter not' vie (on fera abstraction de ce qu'il a dit après l'épisode Adam et Eve); parmi celles-ci, la possibilité de s'arrêter sur une exception de type NullPointerException. Je sais le faire sous Eclipse, mais aucune idée sous NetBeans, faudra chercher comment faire ceci sous ton IDE. Une fois l'exception NullPointerException cochée, tu lances l'appli en mode debug et à l'exécution NetBeans va s'arrêter sur la ligne merdique; tu auras accès au contexte (avec la possibilité de consulter la valeur des différentes variables qui traînent dans le coin)...
Bon courage et tiens-moi au courant,
++
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
>
carolcica
Messages postés
16
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
10 juin 2008
4 juin 2008 à 15:05
4 juin 2008 à 15:05
"Alors pour répondre à ta première question c'est... " <== hein? pas capté, s'il s'agit de ma première question (celle qui concerne l'italique et le gras). Car tu as bel et bien utilisé un formatage correct above, avec le copy-paste d'une méthode qui a une zoulie couleur, différente du reste ^^
Si une âme charitable peut m'expliquer comment faire cela, elle aura mon éternelle reconnaissance. Tiens, je vais essayer un test:
<b>ceci est en bold</b>
<i>et cela en italique</i>
Si une âme charitable peut m'expliquer comment faire cela, elle aura mon éternelle reconnaissance. Tiens, je vais essayer un test:
<b>ceci est en bold</b>
<i>et cela en italique</i>
carolcica
Messages postés
16
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
10 juin 2008
8
>
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
4 juin 2008 à 16:16
4 juin 2008 à 16:16
Oui c'était bien pour répondre à ta question de l'italique et du gras mais comme je suis bête forcément j'ai écrit le code donc c'est pas apparu hahahahahahahaha
les mots codes sont :
gras (pour l'italique)
ital (pour souligner)
souligne (pour le gras)
(les parenthèses c'est des blagues) et tout ceci entre les balises <> et </> of course.
Voili voilou j'espère que ça te réjouit de savoir ça !
Bon je retourne à mes listeners après cette pause miam miam
A+
les mots codes sont :
gras (pour l'italique)
ital (pour souligner)
souligne (pour le gras)
(les parenthèses c'est des blagues) et tout ceci entre les balises <> et </> of course.
Voili voilou j'espère que ça te réjouit de savoir ça !
Bon je retourne à mes listeners après cette pause miam miam
A+
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
>
carolcica
Messages postés
16
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
10 juin 2008
4 juin 2008 à 16:27
4 juin 2008 à 16:27
"Voili voilou j'espère que ça te réjouit de savoir ça ! " <<== <7ème ciel>celanefaitaucundoute</7ème ciel>
:-p
Le :-p ci-dessus faisait en fait partie de ma réponse initiale, car tu as édité le message après l'avoir posté (nan? [mode songeur]) et je n'avais pas les lignes
les mots codes sont :
gras (pour l'italique)
ital (pour souligner)
souligne (pour le gras)
Elles apparaissent par contre maintenant... Bien, mille merci pour ceci, je reste endetté pour quelques (j'espère) bonnes dizaines d'années.
:-p
Le :-p ci-dessus faisait en fait partie de ma réponse initiale, car tu as édité le message après l'avoir posté (nan? [mode songeur]) et je n'avais pas les lignes
les mots codes sont :
gras (pour l'italique)
ital (pour souligner)
souligne (pour le gras)
Elles apparaissent par contre maintenant... Bien, mille merci pour ceci, je reste endetté pour quelques (j'espère) bonnes dizaines d'années.
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
4 juin 2008 à 16:59
4 juin 2008 à 16:59
Une fois le souci de NullPointerException résolu (cf. post n° 10 ci-dessus), regarde pourquoi il ne passe pas par infoEmited(): la première chose à faire c'est de voir si cette méthode est appelée depuis le code (clic droit sous Eclipse, Références). Si elle n'est pas appelé, tit problème, nan?
Si elle l'est, c'est l'enregistrement de MyListener en tant que listener de la classe qu'il/elle* devrait écouter qui n'est pas correctement effectué; du coup, des recherches d'un deuxième (dizième? ;-)) degré s'imposent.
Elle n'est pas belle, la vie?
* [Note de bas de page]: l'objet MyListener est d'un sexe non encore déterminé.
Si elle l'est, c'est l'enregistrement de MyListener en tant que listener de la classe qu'il/elle* devrait écouter qui n'est pas correctement effectué; du coup, des recherches d'un deuxième (dizième? ;-)) degré s'imposent.
Elle n'est pas belle, la vie?
* [Note de bas de page]: l'objet MyListener est d'un sexe non encore déterminé.
carolcica
Messages postés
16
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
10 juin 2008
8
4 juin 2008 à 17:13
4 juin 2008 à 17:13
Le null pointer c'était de ma faute c'est résolu.
Et maintenant donc c'est pour une des méthodes appelées dans infoEmited, il me dit que "noSuchMethodError" pour la méthode getSimulation qu'on appelle au tout début de infoEmited, et qui est pourtant bien définie.
J'ai mis une ligne d'affichage au début de infoEmited et elle s'affiche bien donc oui elle est bien appelée.
Donc on doit passer aux recherches d'un degré supérieur à ma capacité pour cet aprem, c'est la raison pour laquelle je vais aller faire un tour !
On va dire que MyListener est... UN MEC !!! Car il me pose plein de problèmes !!!!! :p
Et maintenant donc c'est pour une des méthodes appelées dans infoEmited, il me dit que "noSuchMethodError" pour la méthode getSimulation qu'on appelle au tout début de infoEmited, et qui est pourtant bien définie.
J'ai mis une ligne d'affichage au début de infoEmited et elle s'affiche bien donc oui elle est bien appelée.
Donc on doit passer aux recherches d'un degré supérieur à ma capacité pour cet aprem, c'est la raison pour laquelle je vais aller faire un tour !
On va dire que MyListener est... UN MEC !!! Car il me pose plein de problèmes !!!!! :p
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
>
carolcica
Messages postés
16
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
10 juin 2008
4 juin 2008 à 17:27
4 juin 2008 à 17:27
Regarde les MP