Re-construction de la suppression du fichier de classe dans Eclipse
J'ai accidentellement supprimé un .catégorie (bytecode Java) fichier dans mon projet (sur le système de fichiers, et non pas à l'aide d'Eclipse). Facile à fixer, à droite? Viens de re-construire. Mais cela ne fonctionne pas! Même si je sélectionne "créer un Projet" ou "Construire Ensemble" ou "Construire Automatiquement" du menu "Projet", rien de ce qui se passe réellement sur le système de fichiers, et je reçois toujours:
Exception in thread "main" java.lang.NoClassDefFoundError
Je viens de re-compiler le code source j'ai déjà!
Par ailleurs, quand je choisis de "Nettoyer..." dans le menu "Projet", Eclipse ne supprime pas tous les fichiers. J'ai aussi essayé de ré-importer le projet dans un autre dossier, mais Eclipse juste des copies de tous les .les fichiers de classe et le problème persiste.
Vous pourriez supprimer manuellement tous .les fichiers de classe (ou, mieux encore, il suffit de les placer dans un autre dossier), et de faire une reconstruction. Si cela ne fonctionne pas, il doit y avoir quelque chose de plus à ce que vous vous rendez compte (c'est à dire lié .jar/.dll fichier quelque part que la prévention de l'accumulation). Lorsque vous effectuez une construction propre, eclipse doit montrer un "Bâtiment...", probablement dans le coin inférieur droit de l'IDE. Si vous cliquez dessus, je pense que ça va vous donner plus détaillée de sortie, et peut-être de déterminer où est le problème.
J'ai essayé rafraîchissant à la fois le projet et le fichier source en question, et qui n'a pas aidé. Je ne peux pas "..." apparaît, peut-être parce que "Propre" ne supprimera pas tous les fichiers (même s'il devrait toujours constituer le fichier qui a été supprimé).
Trouvé la solution: un autre projet sur lequel ce projet dépendait pourrait ne pas être compilé, car il ne peut pas être nettoyé, car Eclipse voulu supprimer l' .svn répertoires tout au long de ce projet (je n'ai aucune idée pourquoi), et il ne pouvait pas parce que certains fichiers n'ont pas l'autorisation d'écriture. J'ai été heureux d'anéantir tous les .svn de données juste pour obtenir ce travail! Merci pour l'astuce.
user690075: pouvez-vous s'il vous plaît poster une réponse à la question vous-même et puis accepter cette réponse? Aussi, vous devez accepter les réponses aux questions précédentes, si elles de résoudre votre problème.
OriginalL'auteur user690075 | 2011-09-07
Vous devez vous connecter pour publier un commentaire.
L'OP répondu à sa propre question dans les commentaires (2 ans et demi):
En ce qui concerne la prime
SI l'OP réponse ne résout pas votre problème, vous devez vous poser une question plus spécifique sur un nouveau poste, en décrivant ce que vous avez essayé et comment les OP solution ne permettent pas de résoudre votre problème spécifique.
Cela étant dit, en supposant que vous avez essayer la solution de l'OP affiché, il est possible, une autre question (qui n'était pas causé par la suppression d'un fichier de classe) est à l'origine de la même erreur. Parce que vous avez commencé un bounty sur quelqu'un d'autre question et vous ne pouvez pas obtenir votre prestige arrière, j'ai pensé qu'il serait approprié de mentionner qu'il pourrait être utile de votre temps pour vous assurer que votre version du JDK(s) sont compatibles entre les anciens ou externe code source utilisé dans votre projet. Vous obtiendrez la même erreur
NoClassDefFoundError
lorsque le compilateur arrive à un point dans votre code qui fait référence à un objet/classe définies dans une bibliothèque qui a été développée sur une incompatibilité de JDK, il manque des clés à l'interne dépendances qui ne sont pas disponibles dans votre version de JDK.Je voudrais aller dans le détail, mais depuis que cette question est plus précisément sur une erreur qui provient de la suppression d'un fichier de classe, je ne le sens pas du droit de le faire.
OriginalL'auteur Arthur Weborg
Faire un nettoyage complet
1) de Trouver et de supprimer les .eclipse dossier (vous pouvez les sauvegarder en premier)
2) Supprimer liées .classe fichiers
3) S'il y a des .svn dossiers, de les supprimer, soit manuellement, soit via votre client svn
4) Ne pas utiliser la génération automatique de cela, mais de sélectionner manuellement seulement cassé le projet et faire un propre (dans le cas où il y a des dépendances)
Si cela échoue, probablement une bonne idée de package de votre code source et de les ré-importer un nouveau projet. Qui peut éviter de perdre du temps sur une probable IDE bug
OriginalL'auteur George
Plus traditionnels comme les langues, les programmes sont chargés tout à la fois dans le cadre de la procédure de démarrage. Java n'ont pas ce problème car il faut une approche différente de chargement. C'est l'une des activités qui deviennent plus facile, parce que tout en Java est un objet. Rappelez-vous que le code compilé pour chaque classe existe dans son propre fichier. Que le fichier n'est pas chargé jusqu'à ce que le code est nécessaire. En général, vous pouvez dire que “le code de la classe est chargé au moment de la première utilisation”. C'est généralement lorsque le premier objet de cette classe est construit, mais le chargement se produit également lorsqu'un champ statique ou statique de la méthode est accessible.
Si Vous ne pouvez pas restaurer à partir de l'histoire locale. Alors vous êtes hors de la Chance. Utilisation de la Source de Contrôle de la Gestion des Outils comme SVN ou Git pour éviter de telles surprises pour la prochaine fois.
Si vous avez de la source du fichier, essayez de compiler le fichier avec dépendances seul dans la console ou d'autres IDE et copier ce fichier de classe laissez les erreurs sont des erreurs maintenant éditer le fichier source dans eclipse essayer de construire à nouveau. J'espère que cela ne fonctionnera pas car même éclipse la négligence de Re-compilation de certains fichiers lors de la construction du Projet. Mieux Donner un essai.
OriginalL'auteur GreenJava
Vous assurer que ce fichier source se trouve dans votre projet de jeu de la source? Parce que Eclipse ne compilera et la mettre dans votre classpath dans ce cas. Cliquez-droit sur le projet dans de l'Explorateur de packages, Propriétés -> Java Build Path -> Source. La enfermant dossier doit être là ou Eclipse ne compile pas.
En cas, de dire, ce fichier source de la vôtre était une fois dans le jeu de la source, et a été compilé qui pourrait expliquer pourquoi il a travaillé jusqu'à ce que vous supprimé le fichier binaire.
Pour que ce problème ne se produise pas, je suggère d'avoir Gommage sortie dossiers lors des projets de nettoyage de être sélectionné dans Java -> Compiler -> Bâtiment et Construire automatiquement... sur dans le menu Projet.
Assurez-vous également que votre projet de compilation/génération réussit, sinon Eclipse ne peut pas compiler toutes les classes.
Si cela ne fonctionne toujours pas l'aide qu'il peut être important de ce type de projet que vous rencontrez des problèmes avec: Java Projet, Projet Maven, Gradle Projet, etc.
OriginalL'auteur aljipa
À la personne qui a mis la bount, peut-être que vous pourriez engager toutes les modifications apportées à ce que jamais référentiel de code que vous avez, après la fermeture de l'eclispe il suffit de supprimer l'ensemble de l'espace de travail, puis créer un nouvel espace de travail et de ré importer tous les fichiers dans le nouvel espace de travail à partir de votre référentiel de code.
OriginalL'auteur mpop