Les choses fonctionnent sans problème lorsque je travaille sur IntelliJ, mais lorsque j'essaie de compiler et d'exécuter mon code Scala dans la ligne de commande (avec sbt run
), le message d'erreur suivant apparaît.
[error] (run-main-0) Java.lang.UnsupportedClassVersionError: akka/event/LogSource : Unsupported major.minor version 52.0
Java.lang.UnsupportedClassVersionError: akka/event/LogSource : Unsupported major.minor version 52.0
at Java.lang.ClassLoader.defineClass1(Native Method)
at Java.lang.ClassLoader.defineClass(ClassLoader.Java:803)
at Java.security.SecureClassLoader.defineClass(SecureClassLoader.Java:142)
at Java.net.URLClassLoader.defineClass(URLClassLoader.Java:449)
at Java.net.URLClassLoader.access$100(URLClassLoader.Java:71)
at Java.net.URLClassLoader$1.run(URLClassLoader.Java:361)
at Java.net.URLClassLoader$1.run(URLClassLoader.Java:355)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.net.URLClassLoader.findClass(URLClassLoader.Java:354)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:425)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:358)
at Java.lang.Class.getDeclaredMethods0(Native Method)
at Java.lang.Class.privateGetDeclaredMethods(Class.Java:2625)
at Java.lang.Class.getMethod0(Class.Java:2866)
at Java.lang.Class.getMethod(Class.Java:1676)
J'utilise Ubuntu 14.04 LTS.
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
Et ma version de Scala est 2.9.2.
$ scalac -version
Scala compiler version 2.9.2 -- Copyright 2002-2011, LAMP/EPFL
J'ai à peine commencé à apprendre Scala il y a quelques semaines. Si quelqu'un pouvait me conseiller sur ce que je devrais étudier, il serait grandement apprécié.
Il s'est avéré qu'il y avait un décalage dans la version JRE. Dans les paramètres du projet IntelliJ, le SDK du projet était défini sur Java 1.8 (sur mon ordinateur local), tandis que JRE 1.7 était installé sur le système Ubuntu (une instance EC2).
Dans Ubuntu 14.04, OpenJDK 1.8 n'étant pas disponible par défaut, le référentiel suivant doit être ajouté manuellement. Ensuite, OpenJDK peut être installé.
Sudo add-apt-repository ppa:openjdk-r/ppa
Sudo apt-get update
Sudo apt-get install openjdk-8-jre
La version Java par défaut du système peut être modifiée en exécutant la commande suivante.
Sudo update-alternatives --config Java
Une fois que j'ai installé openjdk-8-jre
et ajusté la version Java par défaut du système, la commande sbt run
s'est exécutée sans problème.
Mettez à jour pour corriger la version de Java et compilez à nouveau. Ça devrait marcher
J'utilise un Mac et j'essaie d'apprendre Scala en suivant un simple tutoriel Scala. J'ai eu cette erreur quand j'essaye de lancer l'application.
Raison : Ma version Java installée était 8. Mais sur mon terminal, la version que j'utilisais était 7.
Correction : J'ai mis à jour la version Java vers la version la plus récente, puis cela a fonctionné.
J'ai soudainement commencé à avoir cette erreur sur Windows 10. Il s'est avéré que mon chemin était en quelque sorte revenu pour pointer vers une ancienne version du jdk Java. Pour être précis, j'ai d'abord mis à jour le dernier jdk (de ici pour Oracle), qui pour moi était 8u152. J'ai ensuite corrigé l'entrée de mon chemin pour
c:\Program Files\Java\jdk1.8.0_152\bin
(Ce serait un peu différent pour la version 32 bits.) J'ai ensuite vérifié que javac -version
retournait bien 1.8.0_152 (assurez-vous d'ouvrir un nouveau terminal - un terminal déjà ouvert retiendra l'ancien chemin).
Et puis sbt run
a fonctionné. (Rappelez-vous encore de faire cela depuis un nouveau terminal afin que le chemin soit frais.)