2016-08-29 15 views
17

IntelliJで作業するときに問題なく実行されますが、コンパイルしてコマンドラインでScalaコードを実行しようとすると(sbt run)、次のエラーメッセージが表示されますアップ。Scala sbt run - 「サポートされていないmajor.minorバージョン52.0」

[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の学習を始めたので、誰もが、私はにどうあるべきかについていくつかのアドバイスを提供することができれば、それをいただければ幸いです。

答えて

19

JREバージョンに不一致があることが判明しました。 IntelliJのプロジェクト設定では、JRE 1.7がUbuntuシステム(EC2インスタンス)にインストールされていたのに対し、プロジェクトSDKはJava 1.8(ローカルマシン上)に設定されていました。

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コマンドは問題なく走りました。

+0

私はEclipse Neon.3とUbuntu 16.04 LTSで 'sudo update-alternatives --config java'を使ってデフォルトjreを更新しています – vasigorc

0

私はMacを使い、簡単なScalaチュートリアルに従ってScalaを学習しようとしています。私はこのエラーを私は、アプリケーションを実行しようとしている。

理由: 私のインストールされているJavaのバージョンは8だった。しかし、私のターミナル上で、私が使っていたバージョンは、7

修正だった:私は、最新バージョンへのJavaのバージョンを更新し、それが働いた 。

0

javaバージョンを修正してもう一度コンパイルしてください。それはうまくいくはずです

0

私は突然Windows 10でこのエラーが発生し始めました。私のパスは何とか元のバージョンのjava jdkを指すように戻っていました。徹底するために、私は最初に最新のjdk(Oracleの場合はhere)にアップグレードしました。これは私にとっては8u152でした。私はその後、

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

に私のパスエントリを修正(これは、32ビット版のために少し異なります。)私は、その後javac -version確かに返さ1.8.0_152を(新鮮なターミナルをオープンすることを確認していることを確認 - すでにオープン1つは古い経路を覚えています)。

そして、sbt runが働いた。 (新鮮な端末からこれをやってくれることをもう一度覚えておいてください)

関連する問題