exception in thread "main" java.lang.NoClassDefFoundError:
Le programme suivant est jeter de l'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 me dire la cause?
- Je doute que cela soit le problème, mais JAVA_HOME doit pas inclure
bin
. Sur mon système, je n': JAVA6_HOME=c:\sdks\jdk1.6.0_18 JAVA_HOME=%JAVA6_HOME% PATH=%PATH%;%JAVA_HOME%\bin
Vous devez vous connecter pour publier un commentaire.
J'en ai trouvé une autre raison commune. Si vous créez le fichier java à l'intérieur d'un package à l'aide de l'IDE comme eclipse, vous trouverez le nom du package sur le haut de votre fichier java comme "package pkgName". Si vous essayez d'exécuter ce fichier à partir de l'invite de commande, vous obtiendrez la NoClassDefFoundError erreur. Supprimez le nom du package à partir du fichier java et utiliser les commandes dans l'invite de commande. Gaspillage de 3 heures pour cela. -- Abhi
L'un des endroits java essaie de trouver votre
.class
fichier de votre répertoire courant. Donc, si votre.class
fichier est dansC:\java
, vous devriez changer le répertoire courant qui.Pour changer votre répertoire, tapez la commande suivante à l'invite et appuyez sur Entrée:
Ce
.
raconte java que votre classpath est votre répertoire local.Si votre colis est
helloworld
vous aller au parent dir de votre colis, puis exécutez:L'exécuter comme ceci:
Voir http://scottizu.wordpress.com/2013/08/28/fixing-the-exception-in-thread-main-java-lang-noclassdeffounderror-in-eclipse/.
C'est la forme longue de la Java des commandes qui peuvent être exécutées à partir d'une invite de commande Windows:
Avis le chemin de la classe n'a pas de slash à la fin. L'javac.exe les commandes s'attend à ce que le fichier à la fin ".java". L'java.exe la commande s'attend à ce que le nom complet de la classe et ne prend pas fin avec ".la classe".
Il existe quelques façons de simplifier ces commandes:
Vous n'avez pas à saisir l'ensemble de l'classpath (c'est à dire, vous pouvez simplement utiliser -classpath "."). Entrez dans le répertoire, vous travaillez dans:
cd "C:\Users\Scott\workspace\myproject\"
Vous pouvez utiliser le package par défaut (mettre l'HelloWorld.java répertoire de fichier dans votre répertoire de travail et ne pas utiliser le package Java directive)
Si vous apportez ces modifications, vous devez exécuter quelque chose comme ça (et vous pourriez être en mesure de laisser -classpath "."):
Voici ce que finalement travaillé.
La javadoc de NoClassDefFounError lui-même serait un bon début (ici), et puis je vais vous suggérons de nettoyer et reconstruire votre projet.
La
CLASSPATH
variable doit inclure le répertoire où vos programmes Java .fichier de classe est. Vous pouvez inclure un '.' dansCLASSPATH
pour indiquer que le répertoire en cours devraient être inclus.Votre
CLASSPATH
besoins de connaître l'emplacement de votreHelloWorld
classe aussi.En termes simples, vous devez ajouter dot
.
(moyens répertoire courant) dans leCLASSPATH
si vous exécutezjavac
etjava
commandes à partir de l'invite de commandes DOS.J'ai eu le même problème, et suis tombé sur une solution avec la "construction de Projet Principal F11'.
L'ide a apporté une "option" que j'aimerais décochez la case "Compiler sur Enregistrer"
dans le Build > Compilation d'une partie du Projet de dialogue de configuration.
En décochant 'Compiler sur" Enregistrer "et ensuite de faire de l'habitude (pour moi)" Propre et Construire " a fait le tour pour moi.
tapez la commande suivante dans l'invite de cmd, à l'intérieur de votre dossier:
Eu le même problème essayé les solutions ci-dessus, mais aucune n'a fonctionné.
J'ai dû passer par mon code java pour constater que la fonction principale ne pourrait pas être reconnue puisqu'il n'y a pas d'espace btw et (String)
ie code initial:
code de travail.
Espère que j'ai aidé quelqu'un.
Java Fichier:
puis il y a deux façons de l'exécuter:
J'ai eu cette erreur parce que j'ai eu mes fichiers dans un package.
Donc mon paquet foo j'ai dû appeler comme:
java toto.HelloWorld
Le Problème est ici le paramètre de l'environnement et de l'exécution du fichier de classe.
un. Pour définir le chemin d'accès d'environnement exécutez la commande suivante:
set path=C:\Program Files (x86)\Java\jdk1.7.0\bin
b. exécutez le programme à partir du package comme com.test.TestJavaClass
Commande: java com.test.TestJavaClass
Le grand problème ici est que nous avons exécuté à partir de l'intérieur de l'emballage comme la src/packages/nom.
On ne devrait pas inclure src, nom du package est assez.
Facile & solution Simple:, j'ai résolu ce problème (NetBeans) par l'exportation le projet d'origine dans le fichier zip, la suppression de l'origine, le projet de répertoire et importation le projet de retour à partir du fichier zip.
Essayer de faire
et puis, si il est livré avec aucun des erreurs de compilation (ce qui ne devrait pas le faire parce que je ne vois aucune erreur dans votre programme), puis tapez
java Hello
Si vous voulez compiler et executer n'importe quel fichier java que vous avez créée à l'aide de l'IDE(comme eclipse), il suffit d'exécuter les commandes ci-dessous:
J'ai passé quatre heures à essayer diverses combinaisons & des suggestions de recherche.
Enfin trouvé ce post qui a fonctionné mais pas la meilleure solution pour changer le code d'origine pour le tester.
set classpath=JDKbin;JDKlib;JREbin;JRElib;myClassLib;.
java <packageName>.<className>
aussi essayé lejava ..\<packageName>.<className>
Ni travaillé.
Mais d'abord la réponse seul a travaillé. Merci beaucoup Abhi!!!
Curieux de savoir si il existe un autre moyen de le faire fonctionner sans avoir à modifier le code d'origine? Merci!!!!
si votre Program.java est en "le dossier src/mypkg/subpkg/répertoire":
aller à "src" dir
Pour compiler utiliser "javac mypkg/subpkg/Program.java"
À exécuter "java mypkg.subpkg.Program.class"
J'ai enfin trouvé ce qu'un bug avec Apache Netbeans éditeur:
Ci-dessous les étapes à supprimer l'erreur:
Espère que ça aide, si vous utilisez Apache Netbeans (pas vieux Netbeans)
J'ai eu ce proplem j'ai utilisé maven. Je viens de cliquer projets maven ant alors le nom de
project-> plugins -> clean -> and button run
.