52 votes

exception dans le thread 'main' java.lang.NoClassDefFoundError :

Le programme suivant génère une erreur :

 public class HelloWorld {
    public static void main(String args[]) {
        System.out.println("Hello World!"); 
    }
}

CLASSPATH C:\Program Files\Java\jdk1.6.0_18\bin\

Path C:\Program Files\Java\jdk1.6.0_18\bin\

JAVAHOME C:\Program Files\Java\jdk1.6.0_18\bin

Pouvez-vous s'il vous plaît me dire la cause profonde?

69voto

Abhi Points 161

J'ai trouvé une autre raison commune. Si vous créez le fichier java dans un package en utilisant IDE comme eclipse, vous trouverez le nom du package en haut de votre fichier java comme "package pkgName". Si vous essayez d'exécuter ce fichier à partir de l'invite de commande, vous obtiendrez l'erreur NoClassDefFoundError. Supprimez le nom du package du fichier java et utilisez les commandes de l'invite de commande. J'ai perdu 3 heures pour ça. - Abhi

28voto

99tm Points 19742
Exception in thread "main" java.lang.NoClassDefFoundError  

L'un des endroits où Java essaie de trouver votre .class est votre répertoire actuel. Donc, si votre .class est dans C:\java , vous devez changer votre répertoire actuel pour cela.

Pour changer de répertoire, tapez la commande suivante à l'invite et appuyez sur Entrée :

 cd c:\java  

Ce . indique à Java que votre chemin de classe est votre répertoire local.

 Executing your program using this command should correct the problem:
java -classpath . HelloWorld  

15voto

hadi Points 46

Si votre package est helloworld vous iriez dans le répertoire parent de votre package, puis exécutez :

 java helloworld.HelloWorld

12voto

Konstantin Spirin Points 5347

Exécutez-le comme ceci :

 java -jar HelloWorld.jar

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