web-dev-qa-db-fra.com

Major.minor version 52.0 non prise en charge

Des photos:

Command Prompt showing versions Invite de commande montrant les versions

Picture of error Image d'erreur

Bonjour.Java

import Java.applet.Applet;
import Java.awt.*;

public class Hello extends Applet {

    // Java applet to draw "Hello World"
    public void Paint (Graphics page) {
        page.drawString ("Hello World!", 50, 50);
    }
}

Bonjour.html

<HTML>
    <HEAD>
        <TITLE>HelloWorld Applet</TITLE>
    </HEAD>

    <BODY>
        <APPLET CODE="Hello.class" WIDTH=300 HEIGHT=150>
        </APPLET>
    </BODY>
</HTML>

Erreur

Hello : Unsupported major.minor version 52.0

Quel peut être le problème?

588
user3397452

Le problème est dû à l'incompatibilité de version Java. En faisant référence à Wikipedia Java Référence de la classe :

  • Java SE 12 = 56 (0x38 hex)
  • Java SE 11 = 55 (0x37 hex)
  • Java SE 10 = 54
  • Java SE 9 = 53
  • 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

Ce sont les numéros majeurs attribués. L'erreur concernant la version major.minor non prise en charge est due au fait que pendant la compilation, vous utilisez un JDK supérieur et un JDK inférieur pendant l'exécution .

Ainsi, l'erreur 'major.minor version 52.0' est peut-être due au fait que le fichier jar a été compilé dans JDK 1.8, mais que vous essayez de l'exécuter à l'aide d'un environnement JDK 1.7. Le nombre rapporté est le nombre requis , pas le nombre que vous utilisez. Pour résoudre ce problème, il est toujours préférable que le JDK et le JRE pointent la même version.

Dans IntelliJ IDEA,

  1. Allez à Paramètres Maven Maven Importation . Définissez le JDK pour l'importateur sur 1.8.
  2. Aller à Paramètres Maven Maven Coureur . Définissez le JRE sur 1.8.
  3. Aller au menu Fichier * → Structure du projet SDK . Assurez-vous que le chemin d’accueil du JDK est défini sur 1.8.

Redémarrez IntelliJ IDEA.

Une autre approche qui pourrait vous aider consiste à indiquer à IntelliJ IDEA la version de JDK à utiliser.

Accédez à: /Applications/IntelliJ\IDEA\15\CE.app/Contents/Info.plist et remplacez la version de la machine virtuelle Java par:

<key>JVMVersion</key>
<string>1.8*</string>
572
Aks

Le moyen intelligent de résoudre ce problème consiste à compiler à l'aide du dernier SDK et à utiliser le options de compilation croisée lors de la compilation. Pour utiliser les options complètement correctement , il faut le rt.jar d'un JRE ( et non JDK ). de la version cible.

Étant donné la nature de cet applet, il semble qu'il pourrait être compilé pour être utilisé avec Java 1.1.

88
Andrew Thompson

Vous devrez redéfinir le niveau de conformité de votre compilateur sur 1.7 dans votre IDE.

Cela peut être fait dans les préférences de votre IDE. Par exemple, dans Eclipse, accédez au menu WindowsPréférences, sélectionnez Java et développez-le. Ensuite, sélectionnez Compiler et modifiez le niveau de conformité à 1.7. Je suis sûr que cela fonctionnera à partir de là.

63
olammy

Vous devez exécuter et compiler votre application avec la même version de Java.

Si vous utilisez Eclipse, vous devez faire 2 choses:

  1. Dans Eclipse, cliquez sur "Fenêtre> Préférences" , puis dans la fenêtre qui apparaît à gauche sous "Java" , cliquez sur "JRE installés" , cliquez sur "Ajouter ..." et accédez au dossier contenant le JDK.

  2. Faites un clic droit sur votre projet et cliquez sur "Propriétés" , dans la fenêtre qui apparaît, sur le côté gauche, cliquez sur "Compilateur Java" et décochez "Utiliser la conformité de l'environnement d'exécution sur le chemin de construction Java" , cela vous permet de choisir dans la liste "Niveau de compilation du compilateur" la même version que celle que vous avez définie à l'étape précédente.

51
ZAIRI Oussama

Vous devez mettre à niveau votre version de Java vers Java 8.

Télécharger la dernière archive Java

Téléchargez la dernière version de Java SE Development Kit 8 à partir de sa page de téléchargement officielle ou utilisez les commandes suivantes pour télécharger à partir du shell.

Pour 64 bit

 # cd /opt/

 # wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.Oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.Oracle.com/otn-pub/Java/jdk/8u51-b16/jdk-8u51-linux-x64.tar.gz"

 # tar xzf jdk-8u51-linux-x64.tar.gz

Pour 32 bit

 # cd /opt/

 # wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.Oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.Oracle.com/otn-pub/Java/jdk/8u51-b16/jdk-8u51-linux-i586.tar.gz"

  # tar xzf jdk-8u51-linux-i586.tar.gz

Remarque: si la commande wget ci-dessus ne fonctionne pas pour vous, regardez cet exemple de vidéo pour télécharger l’archive source Java à l’aide du terminal.

Installer Java avec des alternatives

Après avoir extrait le fichier archive, utilisez la commande alternatives pour l'installer. La commande alternatives est disponible dans le paquet chkconfig.

 # cd /opt/jdk1.8.0_51/

 # alternatives --install /usr/bin/Java java /opt/jdk1.8.0_51/bin/Java 2

 # alternatives --config Java

À ce stade, Java 8 a été installé avec succès sur votre système. Nous vous recommandons également de configurer le chemin des commandes javac et jar en utilisant des alternatives:

 # alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_51/bin/jar 2

 # alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_51/bin/javac 2

 # alternatives --set jar /opt/jdk1.8.0_51/bin/jar

 # alternatives --set javac /opt/jdk1.8.0_51/bin/javac

Vérifier la version Java installée

Vérifiez la version installée de Java à l'aide de la commande suivante.

root@tecadmin ~# Java -version

Java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

Configuration des variables d'environnement

La plupart des applications basées sur Java utilisent des variables d'environnement pour fonctionner. Définissez les variables d'environnement Java à l'aide des commandes suivantes:

Configurer la variable Java_HOME

# export Java_HOME=/opt/jdk1.8.0_51
Setup JRE_HOME Variable

# export JRE_HOME=$Java_HOME/jre
Setup PATH Variable

# export PATH=$Java_HOME/bin:$JRE_HOME/bin:$PATH

Notez que la modification de la variable PATH place les nouveaux dossiers Java bin en premier, de sorte qu'ils remplacent les fichiers Java/binaires existants dans le chemin. Il est un peu bâclé de laisser deux dossiers Java/bin dans votre chemin. Il est donc conseillé de les nettoyer en tant que tâche distincte.

Mettez également toutes les variables d'environnement ci-dessus dans le fichier /etc/environment pour le chargement automatique au démarrage du système.

25
Adi

J'ai eu le même problème ... un conflit de version JDK et plug-in.

J'ai compilé avec 1.8 ... le dernier, et ce message a commencé à apparaître. J'ai donc cherché le JRE 7 ( http://www.Oracle.com/technetwork/Java/javase/downloads/server-jre7-downloads-1931105.html ) ... et installé ça ... encore ... Maintenant 1.8 et 1.7 dans le même ordinateur.

L’utilisation de NetBeans, la compilation et le ciblage de la version 1.7 ont résolu mon problème.

22
Analyst

Si vous rencontrez un problème dans Android Studio et que vous avez installé Android N, changez la version de rendu Android avec une version plus ancienne et le problème disparaîtra.

Enter image description here

19
Ivo Stoyanov

Si vous utilisez l'EDI NetBeans, cliquez avec le bouton droit de la souris sur le projet et choisissez Propriétés et accédez à sources, et vous pourrez modifier le format source/binaire en une version JDK inférieure. .

Enter image description here

17
Eduardo Dennis

La version majoritaire 52.0 non prise en charge arrive lorsque vous essayez d'exécuter une classe compilée à l'aide du compilateur Java 1.8 dans une version inférieure de JRE, par exemple. JRE 1.7 ou JRE 1.6. Le moyen le plus simple de corriger cette erreur consiste à installer la dernière version de Java, à savoir Java 8, et à exécuter votre programme.

En savoir plus: http://javarevisited.blogspot.com/2015/05/fixing-unsupported-majorminor-version.html#ixzz4AVD4Evgv

13

Cela se produit lorsque vous compilez vos projets sur higher version de Java (disons jdk 1.8), puis que vous l'exécutez sur un lower version (disons jdk 1.7).

Si vous avez une bibliothèque JRE-1.7 dans votre chemin de projet, alors,

1.Clic droit sur projet

2.Allez à Propriétés

3.Sélectionnez facettes du projet

4.Recouvrez Java en lignes, puis choisissez version (disons 1.7) si vous utilisez JRE-1.7.

5.Cliquez sur Appliquer et exécutez votre projet.

11
Prateek Joshi

Je pourrais résoudre le même problème en utilisant la solution ci-dessous.

Dans mon projet, j'ai ajouté un fichier JAR créé en Java 8. Mon projet faisait référence à JRE 7. Lorsque j'ai modifié le projet JRE en 8, mon problème était résolu.

Pas:

Dans Eclipse, cliquez avec le bouton droit sur le nom du projet dans l'explorateur de projet → Chemin de construction → Bibliothèques → cliquez sur la version de JRE → cliquez sur ÉditerInstallé JRE → Ajouter → Standerd VM → sélectionnez le chemin du clic principal dans JRE (le chemin doit être localePath\Java\jdk1.8.0_25\jre) → indiquez le nom → Enregistrer → sélectionnez le même JRE pour le projet → Terminer → OK. Actualisez/générez le projet une fois → essayez d'exécuter votre fichier Java. Ça devrait marcher.

10
user3181500

J'ai résolu mon problème en supprimant les anciennes versions de JRE et en installant JRE 8.

10
mboy

J'avais Java 1.7 & 1.8 installé (avec SBT 2.4, il faut Java 1.8). Même si mon projet était lié à Java 1.8, je devais modifier la variable d'environnement Java_HOME au point 1.8. Enfin, le problème est résolu.

9
Lior Ohana

Si vous utilisez Eclipse, assurez-vous que votre menu Projet Propriétés chemin de construction Java bibliothèques La bibliothèque système JRE correspond aux exigences de votre projet (comme indiqué dans l'image).

Enter image description here

6
kalan

Pour résoudre le problème, il vous suffit de ... vous assurer que votre version de Java est la même pour la compilation et l'exécution. Quels que soient les outils ou les IDE que vous utilisez.

6
Nixit Patel

Si vous utilisez Linux et que différentes versions de Java sont installées, utilisez la commande suivante:

Sudo update-alternatives --config Java

Cela vous permettra de basculer rapidement entre les versions Java installées sur le système. En choisissant Java 8, je résoudrai votre problème.

5
Masoud

Cela m’est arrivé lorsque j’ai installé un Java 1.8 récent, mais que j’ai laissé l’ancien interpréteur de ligne de commande ouvert.

Il avait un ancien chemin et continuait à exécuter l'application avec Java 1.7 alors que le projet était déjà construit avec Java 1.8.

5
Val

Si votre version du JDK est correcte. Une autre raison pouvant provoquer cette erreur est que votre Android Studio est dans une version basse, mais que votre version Gradle est trop élevée. Upgrade your IDE to a newer version peut vous aider.

4
Kyeson

Vous pouvez vérifier votre configuration Configurations d'exécution si vous utilisez Eclipse v4.4 (Luna) et que vous avez déjà effectué toutes les étapes mentionnées ci-dessus.

Plusieurs possibilités pourraient être à l'origine de cette erreur. La cause fondamentale est une incompatibilité du projet nécessitant une compilation dans JDK1.8/JRE8 alors que le compilateur d'environnement est JDK1.7/JRE7.

Vous pouvez vérifier mon blog pour passer en revue tous vos paramètres sont corrects.

3
ct.tan

Mettez à niveau votre version d'Andorre vers JDK 1.8.

Il s'agit d'une incompatibilité de version que votre compilateur recherche pour Java version 8 et vous disposez de Java version 7.

Vous pouvez exécuter une application construite dans la version 7 dans la version 8, mais vous ne pouvez pas l'inverse car, pour les niveaux supérieurs, les versions sont intégrées avec davantage de fonctionnalités et d'améliorations que les versions précédentes.

Télécharger la version du JDK à partir de ce lien

Et définissez votre chemin JDK pour cela

3
ireshika piyumalie

Vous devez utiliser JDK 1.7.0 plutôt que JDK 1.8.0.

Pour vous en assurer, vous devez supprimer JDK 1.8.0 sur votre ordinateur.

Si vous utilisez Mac, vous devez supprimer:

/Bibliothèque/Java/JavaVirtualMachines/jdk.jdk

/Library/PreferencePanes/JavaControlPanel.prefPane

/ Bibliothèque/Internet Plug-Ins/JavaAppletPlugin.plugin

Ensuite, vous devez réinstaller JDK 1.7.0 et vous réussirez à générer le fichier .jar.

3
ClaireWang

Aucune de ces réponses ne m'a aidé, mais j'ai trouvé une solution.
J'ai utilisé un projet Web dans Wildfly 8.2, construit avec Maven, les sources et cibles étant définies sur 1.8 dans le plug-in maven-compiler, ainsi que tous les paramètres Eclipse et Maven définis sur Java. 1.8. Le problème était que Wildfly 8.2 ne pouvait pas gérer Java 1.8, je devais donc tout régler à 1.7 et cela fonctionnait.

1
Bevor

Je veux juste ajouter ceci. J'ai eu ce problème aujourd'hui. Ajusté les paramètres de mon projet, reconstruit et le même problème. J'avais supposé (à tort) que la modification des paramètres de mon projet (Eclipse) entraînerait également la recompilation des projets dont dépend mon projet. En modifiant les paramètres de tous les projets, l’arbre de dépendance a résolu le problème.

1
dexter

J'ai rencontré ce problème dans Eclipse sur Mac OS X v10.9 (Mavericks). J'ai essayé beaucoup de réponses sur Stack Overflow ... enfin, après une journée complète, j'ai * installé une nouvelle version du SDK Android (et mis à jour Eclipse, menu Projet Propriétés Android pour utiliser le nouveau chemin) * .

Je devais obtenir les mises à jour du SDK, mais uniquement en extrayant celles que je jugeais nécessaires, en évitant les API avec lesquelles je ne travaillais pas (comme Wear et TV) .. et ça a fait l'affaire . Apparemment, il semble que j'ai corrompu mon SDK quelque part en cours de route.

BTW .. J'ai vu l'erreur refaire surface avec un projet dans mon espace de travail, mais cela semblait lié à une importation d'appCompat-7, que je n'utilisais pas. Après avoir terminé ce projet, le problème n’a pas encore vu le jour.

1
Gene Bo

Si vous utilisez IntelliJ IDEA , accédez à Structure de projet (Ctrl + Alt + Shift + S), et vous pouvez changer le JDK de votre projet.

1
Esmaeil MIRZAEE

Allez simplement sur http://Java.com/en/download/ et mettez à jour votre version de JRE.

1
Bikey