bonjour,
je commence en java mais :
:calim2::calim2::calim2::calim2::calim2:Code:
1
2 D:\dev\java\test>main.java Erreur : impossible de trouver ou charger la classe principale
aider moi svp:(
Version imprimable
bonjour,
je commence en java mais :
:calim2::calim2::calim2::calim2::calim2:Code:
1
2 D:\dev\java\test>main.java Erreur : impossible de trouver ou charger la classe principale
aider moi svp:(
Salut,
Lorsque tu lances l'exécutable java.exe il faut que la classe "main" (une classe qui a une méthode static main(String[] args)), indiquée (c'est-à-dire le fichier .class qui la représente) soit trouvable. Le programme java.exe checher par défaut dans le dossier (en résumé le classpath par défaut est .) dans lequel on le lance, sinon dans le classpath (précisé en particulier par l'option -cp). Sans classpath, si la classe se trouve dans un autre dossier elle ne pourra pas être trouvée. De plus, si ta classe est définie comme faisant partie d'un package, il faudra un indiquer le nom de la classe complète y compris le package, et que ce nom complet soit trouvable.
Par exemple, si tu lances java.exe dans d:\dev\java, que le package est test, et que le fichier main.class est bien dans c:\dev\java\test, il faudra lancer : java test.main
g pas compris???
c dur
j'aurait du écouter mes proches:"java c'est nul et pas adapté" :aie::aie::aie:
Quelque soit le langage, ou le programme, de manière générale, il y a des conditions pour l'exécuter. Tu ne peux pas lancer un programme avec de mauvais paramètres et espérer que ça marche comme par magie.
je regarde un tuto sur internet est il dis que main c'est caCode:
1
2
3
4
5 public static void main(Sring[] var) { int temperatureSoleil; temperatureSoleil = 15600000; System.out.print("Hello World !"); }
Oui, enfin, ce que tu montres, c'est une méthode. La méthode qu'il faut implémenter dans une classe pour pouvoir la lancer comme démarreur de programme en Java. Mais cette méthode doit être dans une classe, par exemple appelons-là TemperatureSoleil :
Ce code source Java est le contenu d'un fichier qui doit s'appeler TemperatureSoleil.java.Code:
1
2
3
4
5
6
7 public class TemperatureSoleil { public static void main(Sring[] var) { int temperatureSoleil; temperatureSoleil = 15600000; System.out.print("Hello World !"); } }
Ce fichier est dans un dossier, mettons d:\dev\java\test. Pour pouvoir l'exécuter, il faut compiler ce source. Si veux le faire en console, il faut que javac.exe du JDK soit dans le path de ton environnement (sinon il faudra taper son chemin complet, exactement comme pour l'exécution d'un programme java avec java.exe). javac.exe c'est le programme qui va servir à compiler le source Java.
Il faut donc lancer un cmd.exe, se placer dans le dossier d:\dev\java\test (avec [c]cd[\c] (et éventuellement d:) et taper javac.exe TemperatureSoleil.java. Ceci créé un fichier TemperatureSoleil.class que tu peux exécuter alors par java.exe TemperatureSoleil.
Code:
1
2
3
4
5
6D:\dev\java\test>javac.exe main.java 'javac.exe' nest pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes. D:\dev\java\test>java.exe main Erreur : impossible de trouver ou charger la classe principale main
Déjà, est-ce que tu as installé un JDK ? Si non, c'est indispensable pour compiler. Si oui, Windows ne peut pas deviner où il est installé : il faut donc ajouter le chemin du dossier bin du dossier d'installation du JDK dans la variable d’environnement path, ou mettre le chemin complet de javac.exe dans la commande.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 D:\dev\java\test>javac.exe game.java D:\dev\java\test>java.exe game Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.UnsupportedClassVersionError: game has been compiled by a more recent version of the Java Runtime (class file version 57.0), this version of the Java Runtime only recognizes class file versions up to 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Ce message "game has been compiled by a more recent version of the Java Runtime (class file version 57.0), this version of the Java Runtime only recognizes class file versions up to 52.0" veut dire que tu as compilé avec une version (57.0 veut dire Java 13) mais que tu exécutes avec une autre version plus ancienne (52.0 veut dire Java 8)
Un Java 8 ne peut exécuter une classe compilée en Java 13 : c'est beaucoup plus récent et il y a plein de nouveautés que Java 8 ne connaîtra pas).
Ceci veut dire probablement que tu as le chemin d'un dossier qui contient un java.exe version Java 8 dans le path de Windows avant le path de ton dossier bin de JDK 13. Windows parcourt les chemins du path dans l'ordre et dès qu'il en trouve un qui convient, il s'arrête.
Comme java.exe de Java 13 exécute très bien du Java 8, tu peux enlever du path le chemin vers le dossier qui contient le java.exe Java 8 (c'est probablement le chemin de la JRE installée par défaut par Windows. Ce ne sera pas plus mal, parce que de plus en plus de programmes Java vont être compilés avec des versions récentes même si aujourd'hui une grande majorité le sont plutôt en Java 8, parce que ce sont les versions les plus distribuées sur les laptops sous Windows comme sous Linux.
alors cetais ca dupuis le debut :roll: alors je vais reinstaller :marteau:
ok c'est bon:D ça marche