web-dev-qa-db-fra.com

Le fichier de classe a une mauvaise version 52.0, devrait être 50.0

J'essaie de compiler mon projet dans l'idée d'IntelliJ. J'utilise une classe dans un fichier JAR externe et lors de la compilation, recevant l'erreur ci-dessus.

Je comprends que cela signifie que le fichier jar a été compilé avec une version Java plus récente que celle utilisée par IntelliJ. Ma question est comment puis-je les rendre compatibles? J'ai mis à jour le Java sur mon Mac à 1.8 et lorsque je lance Java -version ou javac -version cela me confirme.

Qu'est-ce que je rate? (En dehors de l'expérience de développement Java)

12
jaywayco

Sélectionnez "Fichier" -> "Structure du projet".

Sous "Paramètres du projet", sélectionnez "Projet"

De là, vous pouvez sélectionner le "Project SDK".

8
Vlad Spreys

Cela signifie que votre version d'exécution Java est 1.8, mais que votre version de compilateur (javac) est 1.6. Pour le résoudre simplement, retirez simplement la version Java de 1.8 à 1.6.

Mais si vous ne souhaitez pas modifier la version d'exécution Java, procédez comme suit:

  1. Java_HOME = "votre chemin de dossier jdk v1.8", pour vous assurer que jdk est également v1.8 Utilisez de nouveau Java et la version javac pour utiliser
  2. Assurez-vous que le mode de compilation d’IntelliJ est conforme à la version 1.6 Mais j’ai essayé cela. cela n'a pas résolu mon problème. 
6
Superdoggy

J'ai la même erreur que dans l'en-tête à cause d'une tentative infructueuse de compilation de mon projet avec Java 8, puis d'une nouvelle tentative de compilation avec Java 6. Certaines classes ont été compilées à la première tentative avec 8 et n'ont pas été recompilées avec 6. Les classes mixtes n'ont pas été compilées puis. Le projet de nettoyage a résolu le problème ... Cette réponse n’est pas strictement pertinente, mais pourrait être utile à quelqu'un.

1
user3132194

j'ai rencontré le même problème "Le fichier de classe a une mauvaise version 52.0, devrait être 50.0" lors de l'exécution de Java via ant ... tout ce que j'ai fait a été d'ajouter fork = "true" partout où j'ai utilisé la tâche javac et ça a marché... 

0
praneeth