web-dev-qa-db-fra.com

Impossible de réparer la version majeure 52.0 non prise en charge même après avoir résolu le problème de compatibilité

Lorsque j'essaie d'exécuter mon .jar Java sur une autre machine, le message d'erreur s'affiche.

Major.minor version 52.0 non prise en charge

J'ai compilé mon programme en utilisant le jdk 1.6 et ma machine (séparée) a Java 7 installée.

Voici la version Java de ma machine en cours d'exécution:

Java version 1.7

Voici les réglages dans mon IDE (Eclipse Lunar)

Eclipse compiler settings

Eclipse JRE settings

Pourquoi ai-je toujours une erreur non supportée?

J'ai vérifié ma configuration d'exécution et l'ai modifiée en jre6, mais je ne peux même pas exécuter mon programme dans l'IDE.

Note: Je voudrais que mon programme fonctionne avec jdk 6, si ce n’est pas possible jdk 7.

Mon chemin de classe:

class path

32
Maple

Je suis d'accord avec chrylis: vous pensez que vous avez modifié les paramètres de conformité de votre projet, mais vous ne l'avez probablement pas fait.

Faites un clic droit sur votre projet et:

  • Java/Build Path: Allez dans l'onglet Libraries et assurez-vous que vous utilisez vraiment jre6
  • Java/Compilateur: Assurez-vous d'avoir sélectionné la conformité 1.6

En passant, vous pouvez "dire" à Eclipse que jre8 correspond à la conformité 1.6 en cliquant sur Fenêtre/Préférences/Java/JRE installés/Environnement d'exécution et en sélectionnant dans le panneau de gauche, Exécution Environments, JavaSE-1.6 et dans le panneau Compatible JRE, jre8.

32
Facepalmed

Bonjour, j'ai trouvé ce link qui m'a aidé à comprendre le problème. J'espère que c'est utile. Les versions publiées jusqu’à présent sont 

  • Java SE 8 = 52, 
  • Java SE 7 = 51,
  • Java SE 6.0 = 50,
  • Java SE 5.0 = 49,
  • JDK 1,4 = 48,
  • JDK 1,3 = 47,
  • JDK 1,2 = 46,
  • JDK 1,1 = 45

et à partir des données que cela signifie simplement 

Beaucoup de gens se demandent pourquoi une erreur de non-concordance de versions se produit si Java est compatible avec les versions antérieures. Eh bien, il est vrai que Java est compatible avec les versions antérieures, ce qui signifie que vous pouvez exécuter un fichier de classe Java ou un fichier binaire Java (fichier JAR) compilé dans une version plus basse (Java 6) dans une version supérieure, par exemple. Java 8, mais cela ne signifie pas que vous pouvez exécuter une classe compilée à l'aide de Java 7 dans Java 5, Pourquoi? car les versions supérieures ont généralement des fonctionnalités qui ne sont pas supportées par les versions inférieures.

Parfois, plusieurs versions de Java peuvent être installées sur votre ordinateur. Assurez-vous que l'application que vous exécutez pointe vers la bonne version ou la version la plus élevée disponible.

14
Bryida

Je rencontre un problème similaire lors du développement sur Android Studio 2.2.

Ma configuration de machine -

  1. JDK version 1.7.0_79 installé
  2. JDK version 1.8.0_101 installé
  3. La variable d’environnement contient: Java_HOME = 1.7.0_79 Le chemin JDK est ajouté à la variable de chemin.
  4. Emplacement du SDK du projet = C:\Program Files\Java\jdk1.8.0_101

J'ai ensuite apporté des modifications ci-dessous - 1. Désinstallez JDK 1.7.0_79 2. Java_HOME mis à jour = 1.8.0_101 chemin JDK (similaire à l'emplacement du SDK)

Maintenant, je suis en mesure de compiler et d’exécuter mon application avec succès, pas plus erreur majeure.supported version 52.0

2
Sabextc10

Si vous essayez d'exécuter votre programme/application à partir de la commande Invite. Assurez-vous simplement de redémarrer votre cmd après avoir modifié la variable Java_HOME. Très simple mais facilement manqué parfois.

1
Shantanu Gupta

Utilisez-vous retrolambda? Si oui, il suffit de faire Java_HOME=$Java8_HOME.

Source: https://github.com/evant/gradle-retrolambda/issues/74

0
espinchi

Plusieurs possibilités qui causent ce problème. La cause fondamentale ne correspond pas à la version du compilateur entre les projets et l'EDI. Pour l’environnement Windows, vous pouvez vous référer à ce blog pour effectuer le dépannage détaillé.

0
ct.tan

C'est un problème idiot, assurez-vous simplement que le jdk et jre sont la dernière version. Ce problème survient principalement en raison de la mise à jour automatique de Java (jre) et le jdk n’est pas pris en charge par cette version.

0
Abhijith

Je devais également mettre à jour la version de Tomcat que j'utilisais de Tomcat 7 à Tomcat 8.

0
TheBakker

J'ai aussi eu le même problème. J'ai résolu ce problème en mettant à jour mon système jdk . Auparavant, j'utilisais jdk7.0 et maintenant, il est mis à jour en jdk8.0 . pour résoudre mon problème.

http://www.Oracle.com/technetwork/Java/javase/downloads/jdk8-downloads-2133151.html

0
Pravin Ghorle

Прежде всего, спасибо за все вышеупомянутые ответы. Тем не менее, я использую Idée Intelligent для ежедневного использования. Поэтому я надеюсь, что мой ответ поможет другим.

Запустите ваш любимый терминал или командную строку. Затем проверьте свою версию Java, выполнив команду

Java -version

Затем в Intellij нажмите

Ctrl+Alt+Shift+S

в

Project Settings

вкладка под

Project SDK

выберите подходящую версию Java. Наконец, перезапустите ваш код.

0
Esmaeil MIRZAEE

Faites un clic droit sur Projet, Propriétés ---> Compilateur Java (sur la même page, changez le niveau de conformité du compilateur en 1.6 (ou) 1.7 (ou) 1.8 (correspond à votre Java_HOME)

0
Ram Achanta

L'erreur se produit lorsque vous avez compilé avec une version supérieure de Java et que vous avez essayé de l'exécuter avec une version inférieure de JRE. Même avec une incompatibilité de version mineure, vous auriez ce problème

J'ai eu un problème de compilation avec JDK 1.8.0_31 et il a été exécuté avec jdk1.8.0_25 et affichait la même erreur. Une fois que la cible est mise à jour vers une version supérieure ou compilée avec une version identique ou inférieure, le problème est résolu.

0
Gobinath Mani