Подтвердить что ты не робот

Scala sbt run - "Неподдерживаемая версия major.minor 52.0"

Все работает без проблем, когда я работаю над IntelliJ, но когда я пытаюсь скомпилировать и запустить мой код Scala в командной строке (с помощью sbt run), появится следующее сообщение об ошибке.

[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)

Я использую 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

И моя версия Scala равна 2.9.2.

$ scalac -version
Scala compiler version 2.9.2 -- Copyright 2002-2011, LAMP/EPFL

Я только начал изучать Scala несколько недель назад, поэтому, если бы кто-нибудь мог дать некоторые советы о том, что я должен изучить, было бы весьма полезно.

4b9b3361

Ответ 1

Оказалось, что в версии JRE существует несоответствие. В настройках проекта IntelliJ SDK проекта был установлен как Java 1.8 (на моей локальной машине), тогда как JRE 1.7 был установлен в системе Ubuntu (экземпляр EC2).

В Ubuntu 14.04, тогда OpenJDK 1.8 недоступен по умолчанию, поэтому следующий репозиторий должен быть добавлен вручную. Затем можно установить OpenJDK.

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jre

Стандартную версию Java в системе можно изменить, выполнив следующую команду.

sudo update-alternatives --config java

Как только я установил openjdk-8-jre и скорректировал версию Java по умолчанию в системе, команда sbt run запускалась без каких-либо проблем.

Ответ 2

Я использую Mac и пытаюсь изучить Scala, выполнив простой учебник Scala. Я получил эту ошибку, когда пытаюсь запустить приложение.

Причина: Моя установленная версия java была 8. Но на моем терминале версия, которую я использовал, была 7.

Fix: Я обновил версию java до самой новой версии, а затем сработал.

Ответ 3

Обновить, чтобы исправить версию Java и скомпилировать ее снова. Он должен работать нормально

Ответ 4

Я неожиданно начал получать эту ошибку в Windows 10. Оказалось, что мой путь каким-то образом вернулся, чтобы указать на старую версию java jdk. Чтобы быть основательным, я сначала обновился до последнего jdk (от здесь для Oracle), который для меня был 8u152. Затем я исправил свой путь в

c:\Program Files\Java\jdk1.8.0_152\bin

(Это было бы немного иначе для 32-разрядной версии.) Затем я подтвердил, что javac -version действительно вернул 1.8.0_152 (обязательно запустите новый терминал - уже открытый будет помнить старый путь).

И затем работал sbt run. (Снова вспомнив, что нужно сделать это со свежего терминала, так что путь свежий.)