2016-08-29 15 views
17

Mọi thứ chạy không có vấn đề gì khi tôi làm việc trên IntelliJ, nhưng khi tôi cố gắng biên dịch và chạy mã Scala của tôi trong dòng lệnh (với sbt run) lên.Scala sbt run - "Unsupported major.minor version 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) 

Tôi đang sử dụng 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 

Và phiên bản Scala của tôi là 2.9.2.

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

Tôi hầu như không bắt đầu học Scala cách đây vài tuần, vì vậy nếu ai đó có thể cung cấp một số lời khuyên về những gì tôi nên xem xét, nó sẽ được đánh giá cao.

Trả lời

19

Hóa ra là có sự không khớp trong phiên bản JRE. Trong cài đặt dự án IntelliJ, SDK dự án được thiết lập là Java 1.8 (trên máy cục bộ của tôi), trong khi JRE 1.7 đã được cài đặt trên hệ thống Ubuntu (một cá thể EC2).

Trong Ubuntu 14.04, thì OpenJDK 1.8 không có sẵn theo mặc định để kho lưu trữ sau phải được thêm thủ công. Sau đó, OpenJDK có thể được cài đặt.

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

Phiên bản Java mặc định trong hệ thống có thể được thay đổi bằng cách chạy lệnh sau.

sudo update-alternatives --config java 

Khi tôi cài đặt openjdk-8-jre và điều chỉnh phiên bản Java mặc định trong hệ thống, lệnh sbt run chạy mà không cần bất kỳ vấn đề.

+0

Tôi đã có vấn đề tương tự trên Eclipse Neon.3 và Ubuntu 16.04 LTS đang cập nhật jre mặc định thông qua 'sudo update-alternatives --config java' – vasigorc

0

Tôi đang sử dụng máy Mac và cố gắng tìm hiểu Scala bằng cách làm theo hướng dẫn Scala đơn giản. Tôi gặp lỗi này khi cố gắng chạy ứng dụng.

Lý do: phiên bản java cài đặt của tôi là 8. Tuy nhiên, trên Terminal của tôi phiên bản tôi đang sử dụng là 7.

Fix: tôi cập nhật phiên bản java phiên bản mới nhất và sau đó nó làm việc .

0

Cập nhật để sửa phiên bản java và biên dịch lại. Nó sẽ hoạt động tốt

0

Tôi đột nhiên bắt đầu nhận được lỗi này trên Windows 10. Hóa ra con đường của tôi đã bằng cách nào đó trở lại để trỏ đến một phiên bản cũ của java jdk. Để được triệt để, tôi lần đầu tiên nâng cấp lên jdk mới nhất (từ here cho Oracle), mà đối với tôi là 8u152. sau đó tôi sửa entry con đường để

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

(Đây sẽ là một chút khác nhau cho các phiên bản 32 bit.) sau đó tôi xác nhận rằng javac -version thực sự trở 1.8.0_152 (hãy chắc chắn để mở một terminal tươi - một đã được mở người ta sẽ nhớ con đường cũ).

Và sau đó sbt run đã hoạt động. (Một lần nữa nhớ để làm điều này từ một thiết bị đầu cuối mới để con đường là tươi.)

Các vấn đề liên quan