4 votes

Pourquoi Java n'a pas pu trouver la classe principale ?

J'ai juste copié le code de Key-Listener de http://java.sun.com/docs/books/tutorial/uiswing/examples/events/KeyEventDemoProject/src/events/KeyEventDemo.java . J'ai pu le compiler avec la commande "javac". Mais lorsque j'essaie d'exécuter le code compilé (en tapant "java KeyEventDemo") j'ai un gros message à la fin duquel je vois :

Could not find the main class: KeyEventDemo.  Program will exit.

Hier, j'ai eu un problème similaire sur Windows Vista (maintenant je suis sur Ubuntu). Sous Windows, j'ai pu résoudre le problème en tapant "java -cp . ProgramName" ou alternativement en ajoutant de nouvelles valeurs ("." et "..")à la variable d'environnement "classpath".

Sur Ubuntu, la première solution ne fonctionne pas. Je veux dire que lorsque je tape "java -cp . KeyEventDemo", j'ai toujours le problème. De plus, sur Ubuntu, j'ai pu exécuter d'autres programmes en tapant simplement "java ProgramName".

Alors, quelqu'un peut-il me dire ce que cette KeyEventDemo a de spécial ? Pourquoi cela ne semble pas fonctionner et comment cela peut être résolu ?

7voto

Michael Borgwardt Points 181658

La classe KeyEventDemo est dans un paquet events Pour l'exécuter, vous devez être dans le parent du dossier de l events qui contient la classe, et l'exécuter en utilisant son nom complet, y compris le paquet :

java events.KeyEventDemo

Le classpath doit contenir le dossier (ou JAR) qui est la racine de la hiérarchie de dossiers qui représente les paquets ; le dossier courant est (je crois) inclus automatiquement.

5voto

Jerome Points 5318

Ce programme n'est pas dans le paquetage par défaut, mais dans le paquetage "events" : utilisez java -cp . events.KeyEventDemo à partir du répertoire contenant le dossier "events" :

   +work
    +events
     -KeyEventDemo.class

4voto

silk Points 1794

C'est parce que le KeyEvent est dans le paquet événements .

Vous devez soit retirer le les événements du paquet ; à partir du code source, ou le compiler avec :

javac -d . KeyEventDemo.java

0voto

Peut-être avez-vous compilé et exécuté avec une version différente de Java. C'est fréquent lorsque vous essayez d'exécuter un exemple sous eclipse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X