Problème avec javac en console
Avant tout, je tiens à préciser que c'est mon premier message sur un forum, donc je n'y connais strictement rien en forum :)
Bonjour, cela fait depuis hier que j'ai un problème avec java. J'ai passé quand même pas mal de temps à faire des recherches, jusqu'à même essayer d'installer une autre version de JDK, mais même ca, j'y arrive pas :( .
Alors, après avoir écris mon fichier MainApp.java sur VS code, je suis aller sur le cmd :
(j'ai bien changé de répertoire, mon fichier n'a aucune faute de frappe et javac est bien en variable d'environnement et fonctionne correctement.)
J'ai écris javac MainApp.java,
mon fichier MainApp.class s'est créé, alors j'ai écris : java MainApp
Voici ce que me rend le cmd :
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: MainApp has b
een compiled by a more recent version of the Java Runtime (class file version 56
.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)
J'ai le JDK 12.0.1 installé dans C:\Program Files\Java\jdk-12.0.1
Ainsi que le JRE 8 installé dans : C:\Program Files\Java\jre1.8.0_201 et C:\Program Files (x86)\Java\jre1.8.0_201
J'utilise Windows 7 64bits
Je pense que le problème vient de la différence de version entre le JDK et le JRE, mais je n'arrive pas à installer d'autres versions, comment je fais ?
Merci d'avance à la/les personne(s) qui va/vont répondre ;)
problème encore présent :(
Merci pour ta réponse :)
Alors, avant tout,j'ai supprimé le JRE 8 et j'ai enlevé cette section qui se trouvais au tout début de la variable path avant de redémarrer mon ordinateur :
C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\ProgramData\Oracle\Java\javapath;
voici désormais son contenu :
%SYSTEMROOT%\SYSTEM32;%SYSTEMROOT%;%SYSTEMROOT%\SYSTEM32\WBEM;%SYSTEMROOT%\SYSTEM32\WINDOWSPOWERSHELL\V1.0\;C:\PROGRAM FILES (X86)\COMMON FILES\ROXIO SHARED\10.0\DLLSHARED\;C:\PROGRAM FILES (X86)\COMMON FILES\ROXIO SHARED\DLLSHARED\;C:\SWTOOLS\READYAPPS;C:\PROGRAM FILES\CONDUSIV TECHNOLOGIES\EXPRESSCACHE\;C:\PROGRAM FILES (X86)\INTEL\OPENCL SDK\2.0\BIN\X86;C:\PROGRAM FILES (X86)\INTEL\OPENCL SDK\2.0\BIN\X64;C:\PROGRAM FILES (X86)\INTEL\SERVICES\IPT\;C:\PROGRAM FILES (X86)\LENOVO\ACCESS CONNECTIONS\;C:\Program Files\ThinkPad\Bluetooth Software\;C:\Program Files\ThinkPad\Bluetooth Software\syswow64;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files (x86)\Common Files\Lenovo;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\MinGW\bin;C:\WINDOWS\System32;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\ProgramData\Oracle\Java\javapath;%SYSTEMROOT%\SYSTEM32;%SYSTEMROOT%;%SYSTEMROOT%\SYSTEM32\WBEM;%SYSTEMROOT%\SYSTEM32\WINDOWSPOWERSHELL\V1.0\;C:\PROGRAM FILES (X86)\COMMON FILES\ROXIO SHARED\10.0\DLLSHARED\;C:\PROGRAM FILES (X86)\COMMON FILES\ROXIO SHARED\DLLSHARED\;C:\SWTOOLS\READYAPPS;C:\PROGRAM FILES\CONDUSIV TECHNOLOGIES\EXPRESSCACHE\;C:\PROGRAM FILES (X86)\INTEL\OPENCL SDK\2.0\BIN\X86;C:\PROGRAM FILES (X86)\INTEL\OPENCL SDK\2.0\BIN\X64;C:\PROGRAM FILES (X86)\INTEL\SERVICES\IPT\;C:\PROGRAM FILES (X86)\LENOVO\ACCESS CONNECTIONS\;C:\Program Files\ThinkPad\Bluetooth Software\;C:\Program Files\ThinkPad\Bluetooth Software\syswow64;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files (x86)\Common Files\Lenovo;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\MinGW\bin;C:\Program Files\Java\jdk-12.0.1\bin;C:\Program Files\Java\jdk-12.0.1\bin\java.exe;
(Ah, je me rendais pas compte à quel point c'est long, en fait sur windows 7 c'est sur une seule ligne ^^' Mais je pense que c'est quand même utile ?)
Après avoir relu la variable path, j'ai vu qu'il y avait encore une "copie" de ce que j'ai supprimé(je l'ai mise en gras). En fait, par rapport à ce que tu disais, c'est ca que je dois(re)supprimer, où j'ai fais une erreur en le supprimant ? :
C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\ProgramData\Oracle\Java\javapath;
Sinon, j'ai réessayé la compilation, ca marche, et l'exécution qui, comme dans le cas precédant, ne fonctionne pas, mais ce n'est pas la même erreur :
Error: could not open `C:\Program Files\Java\jre1.8.0_201\lib\amd64\jvm.cfg'
Mais, il s'entête à exécuter avec le JRE 8 ! Décidément !
J'ai bien vérifié, il y a bien un java.exe dans : C:\Program Files\Java\jdk-12.0.1\bin
J'ai d'ailleurs essayé ca :
Citation:
Envoyé par Conversation passionnante entre moi et l'invite de commande CMD
cd C:\Program Files\Java\jdk-12.0.1\bin
java (ca m'a affiché pleins d'info sur java)
java C:\Users\ACTIF\Desktop\VSCodeProjects\ProjetsJava\MainApp.class
et j'obtiens cette erreur :
Error: Could not find or load main class C:\Users\ACTIF\Desktop\VSCodeProjects\P
rojetsJava\MainApp.class
Caused by: java.lang.ClassNotFoundException: C:\Users\ACTIF\Desktop\VSCodeProjec
ts\ProjetsJava\MainApp.class
Pourtant, ca me paraissait logique que ca marche, mais bon ...
Ca fonctionne, merci beaucoup :)
Et bien, finalement j'ai réinstallé le JDK 12 et supprimé tous ce qui contenait java et que je jugeait inutile dans la variable path (sauf bien sûr la partie qui faisait référence à JDK 12)
Merci beaucoup :)
Sujet résolu.