Lỗi: java: phát hành nguồn không hợp lệ: 8 trong Intellij. Nó có nghĩa là gì?


341

Tôi đang cố gắng biên dịch một số mã trong Tôi đang sử dụng Intellij Ultimate 13.1.4, nhưng tôi gặp lỗi sau và tôi không biết ý nghĩa của nó là gì:

Information:Using javac 1.7.0_55 to compile java sources
Information:java: Errors occurred while compiling module 'Example'
Information:Compilation completed with 1 error and 0 warnings in 3 sec
Information:1 error
Information:0 warnings
Error:java: invalid source release: 8

Tôi đoán là cái gì đó liên quan đến Java 8 và Java 7, nhưng tôi không biết cụ thể là gì. Tôi đã cố gắng tìm kiếm thông báo này trên Google, nhưng họ có thể nói về javachoặc target releasevì vậy nó dường như không được áp dụng.


2
Phiên bản Java nào được cài đặt? JRE / JDK nào bạn đã chỉ ra intellij, trong cài đặt IDE?
nanofarad

2
Có lẽ là thiết lập dự án. Kiểm tra JDK bạn đang trỏ đến và mức độ ngôn ngữ bạn yêu cầu.
duffymo

1
@duffymo bạn đã đúng, nó đã chỉ đến 8. Tôi không nhận ra đó là một thiết lập.
David nói Phục hồi lại

Câu trả lời:


765

Tôi gặp vấn đề tương tự khi "hạ cấp" một dự án từ Java 8 xuống Java 6. Lý do là nó không được thay đổi ở tất cả các nơi trong IntelliJ.

Trong IntelliJ 13.1.4, tôi đã phải thay đổi phiên bản Java và SDK ở những nơi sau để không gặp phải lỗi này:

  • Tệp -> Cấu trúc dự án -> Cài đặt dự án
  • Tệp -> Cấu trúc dự án -> Cài đặt mô-đun -> Tab: Nguồn: Cấp độ ngôn ngữ
  • Tệp -> Cấu trúc dự án -> Cài đặt mô-đun -> Tab: Phụ thuộc: SDK mô-đun
  • Tệp -> Cài đặt -> Trình biên dịch -> Trình biên dịch Java -> Nhắm mục tiêu phiên bản mã byte

ảnh chụp màn hình của Tệp> Cấu trúc dự án> Dự án

ảnh chụp màn hình của Tệp> Cấu trúc dự án> Mô-đun> Nguồn

ảnh chụp màn hình của Tệp> Cấu trúc dự án> Mô-đun> Phụ thuộc

ảnh chụp màn hình của Tệp> Cài đặt / Tùy chọn> Trình biên dịch> Trình biên dịch Java

Viên đạn cuối cùng là viên đạn không được cập nhật trong trường hợp của tôi. Khi tôi thay đổi điều này, lỗi biến mất.


31
người giết tôi là người này : File -> Settings -> Compiler -> Java Compiler -> Target bytecode version. Cảm ơn.
bitoiu

18
Tôi đã chạy vào vấn đề này là tốt, nhưng không có gì ở trên làm việc. Tôi phải làm IntelliJ IDEA -> Preferences... -> Build, Execution, Deployment -> Build Tools -> Gradle -> Gradle JVM, trong trường hợp có ai gặp phải vấn đề này trong khi sử dụng Gradle.
Emil

2
Nguồn: Thay đổi cấp độ ngôn ngữ thành 7 - Kim cương, ARM, đa bắt, v.v. cho IDEA 15
Mia

4
Đây phải là câu trả lời được chấp nhận. Là một người đứng đầu nhỏ, trong IntelliJ IDEA 15, điểm 4 đã chuyển sang Preferences -> Build, Execution, Deployment -> Compiler -> Java Compiler.
vào

Ngoài ra còn có một lựa chọn JRE trong một số cấu hình chạy / gỡ lỗi. Ví dụ: cấu hình chạy / gỡ lỗi Tomcat có bộ chọn "JRE" có thể gây ra lỗi này.
jordanpg

16

Kiểm tra pom.xmlđầu tiên của bạn (nếu bạn có)
Kiểm tra sự phụ thuộc của mô-đun của bạn JDK. Đảm bảo rằng đó là Để thực hiện việc này, đi đến Cấu trúc dự án -> SDK Thêm đường dẫn đến nơi bạn đã lưu trữ 1.8 ( trong trường hợp của tôi) Áp dụng các thay đổi Ngay bây giờ, đi đến Cấu trúc dự án -> Mô-đun Thay đổi SDK mô-đun để áp dụng các thay đổi1.8

jdk1.8.0_45.jdk


1.8

Voila! Bạn đã hoàn tất


6

Đối với người dùng Gradle có vấn đề này, nếu không có gì ở trên giúp thì đây là điều đã giải quyết vấn đề của tôi - áp dụng khai báo này trong tệp build.gradle của bạn:

targetCompatibility = 1.6 //or 1.7;1.8 and so on
sourceCompatibility = 1.6 //or 1.7;1.8 and so on

Vấn đề được giải quyết!


5

Thay đổi pom.xml 1.6thành1.8

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
</plugin>

5

Nó có thể được khắc phục đơn giản bằng cách thiết lập trên Project Structure. Bạn chỉ cần chọn đúng đường dẫn cho phiên bản JDK liên quan. Chọn newvào tab phụ thuộc và chọn đường dẫn. Xong rôi!

nhập mô tả hình ảnh ở đây



2

Câu trả lời của Andreas Lundgren đã có hiệu quả và tôi đã có thể biên dịch và chạy ứng dụng của mình.

Tuy nhiên, khi tôi thử chạy các bài kiểm tra JUnit liên quan đến dự án, tôi đã gặp lỗi tương tự. Đang chạy

gradle -version

từ dấu nhắc lệnh của Windows cho thấy gradle vẫn đang chọn jdk không chính xác. Để khắc phục, tôi phải đặt JAVA_HOMEbiến môi trường để trỏ đến jdk chính xác và khởi động lại IntelliJ.


1

Tôi đã kiểm tra tất cả các phiên bản dự án nói trên, phiên bản mô-đun, phiên bản mã byte dự án, cài đặt phiên bản mã byte đích IntelliJ Idea, nhưng tất cả đều giống như tôi đã cào.

Tôi phải đối mặt với lỗi này Error:java: invalid source release: 1.8trong IntelliJ Idea 2017.2.6bởi vì tôi đã nâng cấp phiên bản phụ thuộc Maventập tin pom, trong đó (phụ thuộc) đã dự định xây dựng cho JDK 1.8 ứng dụng và tôi đã xây dựng ứng dụng của tôi trên và với nguồn biên dịch maven và mục tiêu JDK 1.7.

Do đó, tôi lại hạ phiên bản phụ thuộc xuống phiên bản cũ hơn trong Mavenpom và lỗi đã xảy ra sau Dự án Rebuild Module 'xyz_project'.


0

Đối với người dùng Grails, hãy áp dụng các khai báo này trong tệp BuildConfig.groovy của bạn:

grails.project.target.level = 1.6 //or 1.7;1.8 and so on
grails.project.source.level = 1.6 //or 1.7;1.8 and so on

0

Bạn cần nhấp vào dự án Mở Cài đặt mô-đun và thay đổi đường dẫn của JDK, nếu trong tệp POM bạn sử dụng jdk 1.8, hãy định cấu hình jdk 1.8 với đường dẫn chính xác.



0

Tôi đã thử tất cả các bước được đề cập ở đây https://stackoverflow.com/a/26009627/2058104 , nhưng điểm thứ 4 đã thay đổi. Bạn cần truy cập Tùy chọn -> Xây dựng, Thi hành, Triển khai -> Trình biên dịch -> Trình biên dịch Java

Trong đó, như thể hiện trong hình bên dưới, bạn cần thay đổi "Phiên bản mã byte đích". Mặc dù, tôi đã thay đổi nó thành 8 (vì tôi cần hạ cấp xuống Java 8), nó đã đưa ra cùng một lỗi, lặp đi lặp lại. Do đó, hãy thử xóa mục hiện có (trong bảng này) và thêm lại mục đó. Điều này làm việc cho tôi.

nhập mô tả hình ảnh ở đây

Mặt khác, làm sạch dự án và cố gắng chạy lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.