47 votes

Étrange "java.lang.NoClassDefFoundError" dans Eclipse

J'ai un projet Java dans Eclipse qui fonctionne parfaitement jusqu'à cet après-midi, lorsque j'ai mis à jour certains fichiers (y compris un fichier ant build.xml). Lorsque je construis le projet, l'erreur suivante apparaît:

 java.lang.NoClassDefFoundError: proj/absa/FrontEnd/ApplicationStarter
Caused by: java.lang.ClassNotFoundException: proj.absa.FrontEnd.ApplicationStarter
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source) at
    java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)  
Exception in thread "main" 
 

Est-ce que quelqu'un a une idée du problème?

43voto

rmtheis Points 2007

Faire Projet-> Nettoyer… dans Eclipse a résolu ce problème pour moi.

9voto

duffymo Points 188155

java.lang.ClassNotFoundException signifie CLASSPATH questions. N'ayant pas la moindre idée implique que vous êtes en supposant que le chemin est correctement réglé, mais il n'est pas.

Si vous êtes en train de construire avec Eclipse, assurez-vous que le répertoire où votre compilé .les fichiers de classe existe, est dans le CLASSPATH, et a le nécessaire .les fichiers de classe à elle.

Si vous êtes en train de construire avec Ant, assurez-vous de voir quelque chose comme ceci dans votre build.xml:

<path id="production.class.path">
    <pathelement location="${production.classes}"/>
    <pathelement location="${production.resources}"/>
    <fileset dir="${production.lib}">
        <include name="**/*.jar"/>
        <exclude name="**/junit*.jar"/>
        <exclude name="**/*test*.jar"/>
    </fileset>
</path>

Mise à JOUR: Soit vous n'avez pas JAVA_HOME/bin dans votre PATH ou vous avez téléchargé le JRE au lieu de le JDK. Vérifiez le répertoire où vous avez installé Java et de voir si votre répertoire /bin a javac.exe en elle. Si vous n'avez pas de /bin, télécharger le JDK et de l'installer.

Si vous avez un /bin avec javac.exe en cela, vérifiez le CHEMIN d'accès de voir que le Java /bin est dans le CHEMIN. Une fois que vous avez configuré, ouvrez une invite de commande et tapez "javac -version" pour s'assurer que tout est bien.

Ce JDK avez-vous dire de l'Éclipse à utiliser?

4voto

NooberOverloard Points 35

Cela semble être une erreur commune. La solution consiste à:

  • projet de clic droit
  • choisir des propriétés
  • choisissez 'Java Compiler'
  • Décochez la case "Activer les paramètres spécifiques au projet".
  • appliquer
  • enregistrer
  • courir

J'espère que cela aide dans certains cas.

2voto

kunal khaire Points 21

Je pensais que mon problème et de sa solution pourrait aider.Donc j'ai été faire cette même erreur dans mon projet eclipse.Dans mon projet, j'ai quelques fichiers jar et le NOCLASSDEFERROR a été jeté d'un fichier dans le fichier jar.

Mes fichiers de la bibliothèque ont été une partie d'un nom de dossier "lib" dans mon projet de hiérarchie.J'ai changé le nom des dossiers pour "libs" et le tour est joué, il a travaillé.

(J'ai regardé dans le .classpath fichier et j'ai eu des paires clé-valeur,et l'entrée de mon fichier jar avait clé nommée "lib" et j'ai donc pensé probablement changer de lib pourrait aider.)

1voto

Steve De Caux Points 1320

Je le vois un peu trop souvent ces derniers temps. Juste aujourd'hui, j'ai eu le problème avec une classe du même package que la touché (interrompue au drapeau rouge) de la classe !

La sortie d'eclipse et le redémarrage fonctionne généralement à résoudre le drapeau rouge sur la classe, mais parfois un drapeau rouge est à gauche sur le projet, puis j'ai aussi besoin de fermer le projet et de le rouvrir aussi bien pour se débarrasser de la version autonome du drapeau rouge. Il semble assez bizarre de voir un drapeau rouge sur un projet, avec pas de drapeaux rouges dans l'un de ses enfants répertoires.

Avec maven grappes de projets, j'ai fermer et ouvrir tous les projets du cluster après le redémarrage d'eclipse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X