La classe a été compilée par une version plus récente de l'environnement Java

87

Lors de l'exécution du script sélénium, je reçois le message d'erreur suivant dans la console Eclipse:

La classe a été compilée par une version plus récente de l'environnement Java (fichier de classe version 53.0), cette version de Java Runtime ne reconnaît que les versions de fichier de classe jusqu'à 52.0.


  • Version Java: 8
  • IDE: Eclipse Oxygen
  • Version de Firefox: 46
user5218071
la source
6
class file version 53 = Java 9. Votre JVM Java 8 ne peut pas exécuter de code Java 9.
hurler

Réponses:

110

Ceci est juste une incompatibilité de version. Vous avez compilé votre code en utilisant la version java 9 et votre JRE actuel est la version 8. Essayez de mettre à niveau votre JRE vers 9.

49 = Java 5
50 = Java 6
51 = Java 7
52 = Java 8
53 = Java 9
54 = Java 10
55 = Java 11
56 = Java 12
57 = Java 13
58 = Java 14
Nithin
la source
24
donner des conseils sur le choix logique n'est peut-être pas du tout une bonne solution ... et si le projet est exécuté avec jre-8 en premier lieu et que quelqu'un a accidentellement compilé un module contre 9?
Eugene
Je pense que la mise à niveau ne causera toujours aucun problème car il n'y aura pas de problèmes de compatibilité descendante. Et c'était logique puisque je crois que le compilateur a été mis à niveau vers la dernière version.
Nithin
9
vous pensez à un petit projet de bac à sable; pour les projets d'entreprise - ce n'est jamais une transition facile. Par exemple, certains bogues ont été corrigés dans 8 pour les génériques dont vous vous reposiez sur leurs effets secondaires dans 7; ou l' HashMapordre a changé de 7 à 8 ... etc. J'ai fait face à cela. Dire simplement - passer à 9 est une bonne option, mais jamais simple et rapide
Eugene
si vous dites en termes de niveaux de projet d'entreprise, oui vous avez raison et je suis tout à fait d'accord avec ce point. La mise à niveau / rétrogradation n'est jamais une option la plus viable dans de tels scénarios.
Nithin
@nithinpankaj Essentiellement à chaque fois que j'ai essayé d'utiliser Java 9, une nouvelle erreur s'est produite. Sans raison de mettre à niveau, j'ai arrêté d'essayer et j'ai une mauvaise opinion de Java 9.
Erhannis
37

IDE: Eclipse Oxygen.3

Pour corriger temporairement le problème, procédez comme suit:

Project menu> Properties> Java Compiler> Compiler compliance level>1.8

Un correctif permanent implique probablement l'installation de JDK 9.

FYI 1.8 est le nom de Java 8.

Barre latérale

Je suis récemment revenu à Java après une incursion dans C # (une bouffée d'air frais) et j'ai installé Eclipse Oxygen sur un système propre sur lequel Java n'avait jamais été installé auparavant. Ce tout par défaut avec une toute nouvelle installation d'Eclipse Oxygen, mais d'une manière ou d'une autre, Eclipse ne peut pas obtenir ses propres paramètres pour correspondre au jdk installé. C'est le deuxième projet que j'ai créé et la deuxième fois que j'ai eu ce mal de tête. Il est temps de revenir en C #?

Question connexe

a été compilé par une version plus récente de Java Runtime (fichier de classe version 53.0)

Eric D
la source
intéressant. Cela signifie-t-il que le bytecode n'est PAS compatible avec la transmission?
jusqu'au
10

Vous pouvez essayer de cette façon

javac --release 8 yourClass.java
Krishna Santosh Nidri
la source
6

53signifie java-9, donc cela signifie que quelle que soit la classe avec laquelle vous avez été compilée javac-9et que vous essayez de l'exécuter jre-8. Recompilez cette classe avec javac-8ou utilisez le jre-9

Eugène
la source
1

J'écris ceci parce que j'ai trouvé les autres réponses difficiles à comprendre.

Essentiellement, votre JRE n'est pas mis à jour et / ou Eclipse n'est pas configuré pour utiliser le JRE le plus récent.

Sous Windows, allez dans Panneau de configuration -> Programmes -> Java -> mise à jour et procédez à la mise à jour de java

ou si vous n'avez pas Java, accédez au site Web d'Oracle et téléchargez le JRE le plus récent.

Une fois cela fait, allez dans eclipse, et sous la vue du projet, faites un clic droit sur votre projet, sélectionnez Java Build Path, double-cliquez sur JRE System Library, puis Select Workspace Default JRE 14.1.

Si une version récente de Java n'apparaît pas ici, elle n'est probablement pas installée. Vérifiez votre version JRE (PAS JDK) et assurez-vous qu'elle est récente. Si tel est le cas, essayez de redémarrer l'ordinateur, puis réessayez.

Jacob Waters
la source
0

Allez dans la section Projet, cliquez sur Propriétés> puis sur le compilateur Java> vérifiez que le niveau de conformité du compilateur est 1.8, ou il ne devrait y avoir aucun avertissement jaune en bas

ARVIND1994
la source
0

L'actualisation des dépendances de Gradle fonctionne pour moi: Faites un clic droit sur le projet -> Gradle -> Refresh Gradle Project.

Carlos Casallas
la source
0

J'ai eu un problème similaire de la console après avoir construit un Jar dans Intellij. L'utilisation de la configuration Java pour mettre à jour vers une version plus récente (Windows -> Configurer Java -> Mettre à jour -> Mettre à jour maintenant) ne fonctionnait pas et restait bloquée à la version 1.8 (Java 8).

Pour passer à une version plus récente localement, j'ai dû installer le JDK Java 15 à partir de https://www.oracle.com/uk/java/technologies/javase-jdk15-downloads.html et l'ajouter à mes paramètres d'environnement d'exécution Java.

Paramètres de l'environnement d'exécution Java

ILally
la source
-1

Pour une solution temporaire, faites un clic droit sur Projet => Propriétés => Compilateur Java => là-bas, veuillez sélectionner le niveau de conformité du compilateur 1.8 => .class compatibilité 1.8 => compatibilité source 1.8 .

Ensuite, votre code commencera à s'exécuter sur la version 1.8 .

Merci et salutations, Akshay kenjale.

akshay kenjale
la source