web-dev-qa-db-fra.com

Impossible de trouver ou de charger la classe principale

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> 
24
Lakshmi devi C

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
28
Chris Dev

Essayer:

Java -cp . p1

Cela a fonctionné pour moi quand j'ai eu le même problème, en utilisant Fedora (linux)

12
leat

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
9
Prasaathviki

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?

6
Mister Smith

J'ai eu presque le même problème, mais avec la variation suivante:

  1. J'ai importé un projet maven prêt à l'emploi dans Eclipse IDE de PC1 (le projet y fonctionnait parfaitement) vers un autre PC2
  2. quand essayait d'exécuter le projet sur le PC 2 a obtenu la même erreur "Impossible de trouver ou de charger la classe principale"
  3. J'ai vérifié la variable PATH (elle avait de nombreuses valeurs dans mon cas) et j'ai ajouté la variable Java_HOME (dans mon cas, c'était Java_HOME = C:\Program Files\Java\jdk1.7.0_03) Après avoir redémarré Ecplise, cela ne fonctionnait toujours pas
  4. J'ai essayé de lancer simple HelloWorld.Java sur PC2 (dans un autre projet) - cela a fonctionné
  5. J'ai donc ajouté la classe HelloWorld au projet importé récemment, je l'ai exécuté là-bas et - huh - ma classe principale dans ce projet a également commencé à fonctionner normalement.

C'est un comportement assez étrange, je ne peux pas le comprendre complètement. J'espère que ça va aider quelqu'un. aussi.

4
Ivan Pronin

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
3
Vaandu

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.

3
mastash3ff

je suppose que vous avez un nom de classe différent dans p1.Java

3

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.

2
mutantkeyboard

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%;.;

1
tinkrr

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.

1
Menezes Sousa

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"!

1
iadd

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.

1
Monolord's Knight

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.

0
Eduardo Dennis

j'ai eu

':'

dans le nom de mon projet, par exemple 'HKUSTx: part-2' en le renommant 'HKUSTx-part-2' a fonctionné pour moi

0
kasper_341