Correction: impossible de trouver ou de charger la classe principale



Essayez Notre Instrument Pour Éliminer Les Problèmes

L'erreur ' Impossible de trouver ou de charger la classe principale ’Se produit lors de l’utilisation d’une commande java dans l’invite de commande pour lancer un programme Java en spécifiant le nom de la classe dans le terminal. La raison pour laquelle cela se produit est principalement due à l'erreur de programmation de l'utilisateur lors de la déclaration de la classe.



Impossible de trouver ou de charger la classe principale dans la ligne de commande Java

Impossible de trouver ou de charger la classe principale - Ligne de commande Java



Comme mentionné précédemment, cette erreur n'est généralement pas liée au système et l'utilisateur fait une erreur dans plusieurs scénarios, comme indiqué ci-dessous. Avant d'aller de l'avant, nous supposons que vous avez une connaissance de base du langage de programmation Java et de son fonctionnement.



Quelles sont les causes de l'erreur 'Impossible de trouver ou de charger la classe principale' en Java?

Le message «Impossible de trouver ou de charger la classe principale» signifie que la première étape du moteur Java de récupération de la classe pour exécution a échoué. le commande java n'était pas capable de Localiser la classe dans le bon répertoire.

Dans certains cas, vous devez ajouter le chemin de fichier correct et pointez le terminal Java vers l'emplacement correct. Puisque vous exécutez la commande à partir du terminal de ligne de commande, l'ordinateur ne sait pas où se trouve la classe ni où elle se trouve. Dans les IDE ciblés, ce n’est pas le problème car l’EDI garde un pointeur pointant vers le répertoire de travail actuel.

Qu'est-ce que la syntaxe «java»?

Avant de commencer à déterminer pourquoi le terminal nous renvoie une erreur lors de la tentative d'exécution, nous devons d'abord examiner la syntaxe de la commande. Si vous n'utilisez pas la syntaxe correcte, vous serez inévitablement confronté à cette erreur.



La syntaxe normale de la commande est quelque chose comme ceci:

java [...] [...]

Voici une option de ligne de commande, un nom de classe Java complet et un argument de ligne de commande qui est passé à votre application lorsque l'ensemble du package est compilé.

Un exemple de commande valide est:

java -Xmx100m com.acme.example.ListAppuals kevin flèches bart

La commande ci-dessus obligera la commande java à exécuter les opérations suivantes:

  • Il recherchera une version compilée de la classe ' com.acme.example.ListAppuals ».
  • Après la recherche, il chargera la classe.
  • Ensuite, lorsque la classe est chargée, la classe sera recherchée pour une méthode «principale» avec une signature valide, des modificateurs et un type de retour. Un exemple de classe principale serait quelque chose comme:
public static void main (String [])
  • La méthode sera appelée avec les arguments «kevin», «flèches» et «bart» sous forme de chaîne [].

Comment réparer 'Impossible de trouver ou de charger la classe principale'

Solution 1: vérification de l'argument du nom de classe

L'erreur la plus courante commise par les utilisateurs est de fournir un nom de classe incorrect comme argument (ou un nom de classe correct est une forme incorrecte). Puisque nous déclarons des paramètres sur la ligne de commande, il est fort probable que vous passiez l'argument de nom de classe sous une forme incorrecte. Nous listerons ici tous les scénarios possibles dans lesquels vous pouvez faire une erreur.

  • Écrire un nom de classe simple . Si vous déclarez la classe dans un package tel que «com.acme.example», vous devez utiliser le nom complet de la classe en incluant le package dans la commande Java.
java com.acme.example.ListAppuals

au lieu de

java ListAppuals
  • Vous devriez déclarer un nom de classe au lieu de déclarer un nom de fichier ou un chemin. Java ne récupère pas la classe si vous lui déclarez un chemin / nom de fichier. Incorrect les entrées comprennent les éléments suivants:
java ListAppuals.class java com / acme / exemple / ListAppuals.class
  • Enveloppe doit être pris en considération. Les commandes Java sont sensibles à la casse et si vous faites une erreur ne serait-ce qu'une lettre, vous ne pourrez pas charger la classe principale. Un exemple de erreurs incorrectes sont:
java com.acme.example.listappuals
  • Toi ne devrait pas déclarer à nom de fichier source . Comme mentionné précédemment, il vous suffit de déclarer la classe dans le bon format de nom de classe complet. Exemple d'erreur:
java ListAppuals.java
  • Cette erreur se produira également si vous effectuez un erreur de frappe ou oublier d'écrire entièrement le nom de la classe .

Si vous avez commis des erreurs bâclées en déclarant le nom de la classe, assurez-vous de le corriger, puis essayez de lancer le programme.

Solution 2: vérification du chemin de classe

Si vous avez correctement déclaré le nom de classe mais que l'erreur s'affiche toujours, il est probable que la commande java n'ait pas pu trouver le nom de classe spécifié dans le chemin. Le chemin d'accès aux classes est un chemin dans lequel l'environnement d'exécution Java recherche les fichiers de ressources et de classes. Vous pouvez facilement définir le classpath à l'aide de deux commandes différentes, comme indiqué ci-dessous:

C:> sdkTool -classpath classpath1; classpath2 ... C:> set CLASSPATH = classpath1; classpath2 ...

Pour obtenir plus d'informations sur le chemin des classes, vous devriez consulter les documents suivants.

Documentation des commandes Java

Définition du chemin de classe

Solution 3: vérification du répertoire

Lorsque vous déclarez un répertoire comme chemin de classe, il correspondra toujours à la racine de l'espace de noms. Par exemple, si «/ usr / local / acme / classes» est sur le chemin de classe, Java recherchera une classe «com.acme.example.Appuals». Il cherchera une classe avec le chemin suivant:

/usr/local/acme/classes/com/acme/example/Appuals.class

Donc, en substance, si vous mettez l'adresse suivante dans le chemin de classe, Java ne pourra pas trouver la classe:

/ usr / local / acme / classes / com / acme / exemple

Vous devriez également vérifier votre sous-répertoire et voyez s'il correspond au FQN. Si le FQN de vos classes est «com.acme.example.Appuals», alors Java recherchera un «Appuals.class» dans le répertoire «com / acme / example».

Pour vous donner un exemple, supposons le scénario suivant:

  • La classe que vous souhaitez exécuter est: com.acme.example.Appuals
  • le chemin complet du fichier est: /usr/local/acme/classes/com/acme/example/Appuals.class
  • le répertoire de travail actuel est: / usr / local / acme / classes / com / acme / exemple /

Ensuite, les scénarios suivants tiendraient:

# faux, FQN est nécessaire java Appuals # faux, il n'y a pas de dossier `com / acme / example` dans le répertoire de travail actuel java com.acme.example.Appuals # faux, similaire au scénario java -classpath ci-dessus. com.acme.example.Appuals # OK; un chemin de classe relatif est défini java -classpath ../../ .. com.acme.example.Appuals # OK; un chemin de classe absolu est défini java -classpath / usr / local / acme / classes com.acme.example.Appuals

Remarque: Le classpath doit également inclure toutes les autres classes (non système) dont vos applications ont besoin.

Solution 4: vérification du package de classe

Si toutes les solutions ci-dessus sont vraies dans votre cas, vous devez vous assurer que votre code source est placé dans le bon dossier. De plus, vous avez correctement déclaré le paquet . Si vous exécutez votre code avec un IDE, il vous informera probablement du problème. Cependant, dans notre cas, puisque nous l'exécutons dans l'invite de commande, l'erreur passera inaperçue et vous obtiendrez l'erreur de classe en discussion.

4 minutes de lecture