2010-11-18 17 views
0

J'ai changé le nom d'une de mes classes java et maintenant je reçois une classe classFullException après nettoyage et reconstruction dans eclipse. Je pense que c'est un trivial et que j'ai oublié la solution une fois connue! Des idées?Comment réparez-vous ClassNotFoundException après avoir changé le nom d'une classe en le construisant

Edit: J'ai fini par faire la plus lente solution, créant simplement un nouveau projet et mettre tout le code dedans ...

Répondre

3

Avez-vous utilisé le refactoring Eclipse? Ou avez-vous besoin d'aller organiser les importations de certains fichiers encore?

Modifier en fonction des commentaires OP:

Eclipse fait souvent beaucoup de choses pour les développeurs Java en arrière-plan. Parmi ceux-ci figure les importations d'une référence de classe dans un autre fichier de classe. Si vous avez renommé une classe (et c'est la classe de premier niveau pour laquelle le fichier est nommé), le compilateur s'en plaindra d'abord. Supposons que vous renommiez à la fois la classe et le fichier, maintenant tout autre fichier Java qui a référencé le nom de la classe précédente ne sera plus compilé. Pour que les choses fonctionnent à nouveau, vous devrez passer en revue et corriger les déclarations d'importation ainsi que les références de code dans tout fichier qui indique qu'il ne compile pas. Eclipse utilise également la compilation incrémentale et maintient un modèle de mémoire des projets en cours de développement. Après avoir vérifié qu'il n'y a pas d'erreurs, si l'utilisation de l'utilitaire clean ne fonctionne pas, essayez de fermer eclipse, en supprimant manuellement le contenu du répertoire bin, puis en redémarrant Eclipse. Cela devrait l'amener à exécuter une version complète du projet. À l'avenir, pour éviter complètement ce problème, assurez-vous de toujours utiliser l'utilitaire refactor intégré à eclipse. Le refactoring est aussi simple que de sélectionner un fichier, une classe, une méthode ou un nom de variable et d'appuyer sur alt + shift + r et de remplir le nouveau nom désiré. L'avantage de refactoring est qu'il va automatiquement chasser toutes les références de code (c'est à dire a accès à) pour le développeur.

+0

Pourriez-vous m'éclairer sur ce qu'est exactement le refactoring? J'ai récemment entendu le terme mais n'ai jamais rencontré la définition .-- Edit - {J'ai essayé d'utiliser le refactoring pour le changement de nom après avoir lu votre commentaire et renommer la classe avec cela n'a pas résolu le problème. J'ai toujours reçu une ClassNotFoundException – joepetrakovich

+0

Et quelles importations devrais-je organiser? – joepetrakovich

+0

Parfait, merci beaucoup. – joepetrakovich

1

Utiliser le réfacteur la prochaine fois. Maintenant, essayez de supprimer les classes déjà construites et de compiler à nouveau.

+0

J'ai essayé de les supprimer du répertoire/bin du projet, mais après le nettoyage et la recompilation, le problème est resté. – joepetrakovich