当我在IntelliJ上工作时,运行起来没有任何问题,但是当我尝试在命令行(使用sbt run
)编译和运行Scala代码时,弹出以下错误消息。
[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,所以如果有人能就我应该研究的内容提供一些建议,我将不胜感激。
发布于 2016-08-29 09:38:57
事实证明,JRE版本中存在不匹配。在IntelliJ项目设置中,项目SDK设置为Java1.8(在我的本地机器上),而JRE1.7安装在Ubuntu系统上(一个EC2实例)。
在Ubuntu14.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
命令就可以正常运行。
发布于 2017-12-27 21:16:02
更新到正确的java版本,然后重新编译。它应该工作得很好
发布于 2018-01-12 02:58:49
我突然开始在Windows10上遇到这个错误,原来我的路径不知何故恢复到了一个旧版本的java jdk。为了更彻底,我首先升级到最新的jdk (从甲骨文的here ),对我来说是8u152。然后,我将路径条目更正为
c:\Program Files\Java\jdk1.8.0_152\bin
(这与32位版本略有不同。)然后我验证了javac -version
确实返回了1.8.0_152 (确保打开一个新的终端--一个已经打开的终端会记住旧的路径)。
然后sbt run
开始工作了。(再次记住从新的终端执行此操作,以便路径是新的。)
https://stackoverflow.com/questions/39197422
复制相似问题