J'ai Windows 7, installé jdk1.7.0 et son support jre7.
Mon problème est que la partie compilation fonctionne parfaitement, mais lors de l'exécution du programme Java, je reçois cette erreur en disant:
"Impossible de trouver ou de charger la classe principale"
Je stocke tous mes programmes dans le dossier javalab. J'y ai tracé le chemin. La procédure ressemble à ceci:
C:\Users\user> cd\ C: \> cd javalab C:\javalab> autoexec.bat C:\javalab> set path = C:\Program Files\Java\jdk1.7.0\bin C:\javalab> javac p1.Java C:\javalab> Java p1 Erreur: impossible de trouver ou de charger la classe principale p1 C:\javalab>
J'avais un problème similaire avec mon tout premier programme Java.
J'émettais cette commande
Java HelloWorld.class
Ce qui a entraîné la même erreur.
Il s'avère que vous devez exclure la .class
Java HelloWorld
Essayer:
Java -cp . p1
Cela a fonctionné pour moi quand j'ai eu le même problème, en utilisant Fedora (linux)
Un moyen simple de compiler et d'exécuter Java. (HelloWorld.Java ne comprend aucun package)
set path="C:\Program Files (x86)\Java\jdk1.7.0_45\bin"
javac "HelloWorld.Java"
Java -cp . HelloWorld
pause
javac devrait savoir où rechercher des classes. Essaye ça:
javac -cp . p1.Java
Vous ne devriez pas avoir besoin de spécifier le chemin de classe. Êtes-vous sûr que le fichier p1.Java existe?
J'ai eu presque le même problème, mais avec la variation suivante:
C'est un comportement assez étrange, je ne peux pas le comprendre complètement. J'espère que ça va aider quelqu'un. aussi.
Vérifiez d'abord le nom de votre classe. Il doit être p1 selon les instructions de votre fichier de commandes. Et puis vérifiez votre package de cette classe, s'il se trouve dans un package, spécifiez quand vous exécutez.
Si le package est x.y
Java x.y.p1
Voici mes variables de chemin env de travail après beaucoup de dépannage
CLASSPATH
.; C:\Program Files (x86)\Java\jre7\lib\ext\QTJava.Zip; C:\Program Files (x86)\Java\jdk1.6.0_27\bin
CHEMIN <--- parfois ce CHEMIN se remplit de trop de chemins et vous ne pouvez pas ajouter de chemin (ce qui était mon cas!)
bunchofpaths; C:\Program Files (x86)\Java\jdk1.6.0_27\bin
De plus, lorsque vous essayez d'utiliser la cmd pour exécuter le fichier ... assurez-vous que vous êtes dans le répertoire local en tant que fichier que vous essayez d'exécuter (ce que vous avez fait).
Juste une petite liste de contrôle pour les personnes qui ont encore ce problème.
je suppose que vous avez un nom de classe différent dans p1.Java
J'ai eu des problèmes similaires. Si vous travaillez avec Eclipse, vous devez aller dans le dossier où vous avez votre dossier src/... Si vous avez utilisé un package - alors vous utilisez
javac -cp . packageName/className
ce qui signifie que si vous avez eu un package nommé def et classe principale avec le nom TextFrame.Java, vous écririez
javac -cp . def/TextFrame
en omettant l'extension .Java de fin, puis vous l'exécutez avec le
Java def/TextFrame
et si vous avez des arguments, vous devez lui fournir des arguments correspondant à votre programme. J'espère que cela aide un peu.
Vous pourriez avoir la variable d'environnement CLASSPATH déjà ajoutée !!
Utilisez ce qui suit pour éviter une utilisation ultérieure de -cp .
dans Java -cp . CLASSFILE
Ajouter . à CLASSPATH dans les propriétés système-> variables d'environnement ou par cmd
set CLASSPATH=%CLASSPATH%;.;
J'ai rencontré un problème similaire dans Eclipse. Chaque fois que je cliquais sur le bouton Exécuter, cela me donnait le message "Erreur: impossible de trouver ou de charger la classe principale". Mais lorsque je clique avec le bouton droit sur le fichier Java dans l'explorateur de projet et Exécuter en tant que Java, cela fonctionne parfaitement).
Je pense que c'est parce qu'il essaie par défaut de l'exécuter dans une autre configuration qui cause des problèmes.
J'espère que cette réponse aide certains.
Commencez par mettre votre fichier *.class
(par exemple Hello.class
) dans 1 dossier (par exemple C:\Java
). Ensuite, vous essayez de commander et tapez cd /d C:\Java
. Vous pouvez maintenant taper "Java Hello"!
Si vous avez un seul fichier .Java à compiler à l'aide de la ligne de commande, puis supprimez les parties de package les plus élevées du code, compilez à nouveau, cela fonctionnera.
Cela a fonctionné pour moi.
Parfois, ce qui pourrait être à l'origine du problème n'a rien à voir avec la classe principale. J'ai dû le découvrir à la dure, c'était une bibliothèque référencée que j'ai déplacée et cela m'a donné:
Impossible de trouver ou de charger la classe principale xxx Linux
Je viens de supprimer cette référence et de l'ajouter à nouveau et cela a bien fonctionné à nouveau.
j'ai eu
':'
dans le nom de mon projet, par exemple 'HKUSTx: part-2' en le renommant 'HKUSTx-part-2' a fonctionné pour moi