2013-03-16 5 views
1

Je reçois le NoClassDefError lorsque j'essaie d'exécuter mon programme à partir de la ligne de commande. Cela fonctionne bien dans Netbeans, et javac compile correctement.Java NoClassDefFoundError dans la ligne de commande

J'ai une classe appelée DistributedSystem qui jusqu'ici est seulement supposée imprimer "bonjour". Le répertoire est src/distributedsystem/qui contient DistributedSystem.java et DistributedSystem.class après la compilation.

Si je suis à l'intérieur src/distributedsystem/et exécuter

java DistributedSystem 

je reçois

Exception in thread "main" java.lang.NoClassDefFoundError: DistributedSystem (wrong name: distributedsystem/DistributedSystem) 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 

Je reçois aussi exactement la même erreur si je suis à l'intérieur src/distributedsystem/et exécuter

java -cp . DistributedSystem 

qui est ce que je pensais que régler le problème. J'ai également essayé de m'assurer que classpath n'est pas défini ailleurs, même si -cp devrait l'écraser. Quelqu'un at-il des idées sur ce qui pourrait être faux?

+0

Pouvez-vous poster le code de DistributedSystem.java s'il vous plaît? – rileyberton

+0

duplication possible de [Encore une fois erreur "nom incorrect" lors de l'exécution du programme Java] (http://stackoverflow.com/questions/4955017/again-wrong-name-error-when-executing-java-program) – Mat

+0

vous devez utiliser 'java distributedsystem.DistributedSystem' du dossier src en supposant que le fichier de classe est dans' src/DistributedSystem' –

Répondre

0

Aller au dossier src puis compiler à partir de là et puis exécutez

+0

Oui, cela a résolu le problème. Je pensais avoir essayé toutes les combinaisons, embarrassant! Merci. – user1781340

0

Le chemin de classe doit pointer vers le répertoire de base. Il semble que vous essayez d'exécuter la classe DistributedSystem dans le package distributedsystem, mais votre chemin de classe est défini sur project/bin/distributedsystem au lieu de project/bin.

Questions connexes