Eclipse rcp classloader hell: classe déplacée toujours visible à compiletime mais plus à l'exécution

StackOverflow https://stackoverflow.com/questions/1206795

Question

J'ai un problème étrange et nouveau avec une application rcp eclipse 3.5: tout a bien fonctionné, puis j'ai changé le système en cours d'exécution et transféré une classe unique d'un plugin à un plugin dépendant. Pas de gros problème, mais tout à coup, l'application se plaint d'une exception de classe non trouvée (ou de NoClassDefFoundError - je ne sais pas exactement, mais je vais chercher et éditer le post ...)

Je double, triple, ... vérifie tout ce que je sais et m'assure que le manifeste contient la dépendance avec le numéro de version correct et que le package est correctement exporté dans l'autre plug-in. Eclipse jdk ne se plaint pas (pas d'erreurs / avertissements du compilateur), mais lorsque je débogue juste au point d'instancier la classe et que j'utilise 'CTRL + SHIFT + I' pour inspecter l'instruction 'new MyClass ()', l'info-bulle des inspecteurs , qu'il ne peut pas résoudre cette classe.

Toute aide, suggestion ou commentaire encourageant est vivement apprécié!

Était-ce utile?

La solution 2

Résoudre le problème par hasard (et ne pas avoir la moindre idée s'il s'agissait d'un bogue ou d'une fonctionnalité ...):

Le projet de plug-in, dans lequel j'ai déplacé la classe, avait une structure de dossiers de type maven avec src / main / java et src / test / java, les deux dossiers étant définis comme des dossiers sources.

Juste parce que je voulais tout essayer, j’ai redéfini cette structure sur la structure typique d’éclipse avec simplement src comme dossier source unique.

Et, après un autre "projet propre", il est à nouveau opérationnel. Etrange ...?

Modifier

merci pour le conseil, la structure de dossier était juste une faute de frappe dans ce post.

Après beaucoup d’efforts - je suis assez convaincu que c’était un problème d’éclipse. Après avoir résolu le problème ci-dessus, le lendemain, l'application ne parvenait pas à charger d'autres classes à partir du même plugin et je pense qu'après le redémarrage de l'atelier Galileo, les problèmes ont disparu.

Autres conseils

J'ai également rencontré une erreur NoClassDefFoundError dans une application Eclipse 3.5 Galileo RCP dans laquelle j'avais un dossier src / java dans un plug-in et j'avais besoin d'exporter un package utilisé par un autre plug-in.

La solution pour moi s’est avérée inclure le dossier bin dans le chemin de classe d’exécution. Normalement, il a seulement fallu inclure le. dossier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top