Lỗi: java: javacTask: nguồn phát hành 8 yêu cầu phát hành mục tiêu 1.8


889

Sử dụng IntelliJ IDE không thể biên dịch bất kỳ dự án nào. Ảnh chụp màn hình của cài đặt bên dưới:

JDK đã sử dụng:

http://gyazo.com/b6e32119af7b04090d890cad04db6373

Cấp độ SDK và ngôn ngữ dự án:

http://gyazo.com/55a5fc9f7f2bb721a04780ce9d74eables

Trình độ ngôn ngữ:

http://gyazo.com/143bffad63fd89cafc231298729df2fc

Có ai có ý kiến ​​gì không?


1
Điều đó không giống như một lỗi từ "Intellij thuần túy"; không phải bạn đang sử dụng một bản dựng kiến ​​hay cái gì đó sao?
fge


Câu trả lời:


1912
  1. Tệp> Cài đặt> Xây dựng, Thực thi, Triển khai> Trình biên dịch> Trình biên dịch Java
  2. Thay đổi phiên bản Target byodeode thành 1.8 của mô-đun mà bạn đang làm việc.

Nếu bạn đang sử dụng Maven

Thêm plugin trình biên dịch vào pom.xmlbên dưới projectnút cấp cao nhất :

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

(Hoist từ các ý kiến.)

Lưu ý: Nếu bạn không quan tâm đến việc nhập lại dự án của mình, thì điều duy nhất bạn thực sự cần làm là thay đổi pom và nhập lại dự án, sau đó IntelliJ sẽ chọn các cài đặt chính xác và bạn không phải thay đổi chúng theo cách thủ công.


Hoạt động trong IntelliJ 14 Ultimate.
DtechNet

Trên các phiên bản IDEA cũ hơn, hãy thử: Cài đặt -> Trình biên dịch -> Trình biên dịch Java -> Phiên bản mã byte theo mô-đun
Jonik

88
Nếu bạn đang sử dụng máy Mac, nó nằm trong Intellij IDEA> Tùy chọn ...> Xây dựng, Thực thi, Triển khai> Trình biên dịch Java
JP Armstrong

4
Đối với Intellij mới hơn 2016.2, có thêm một nơi để kiểm tra : Project Structure -> Project Settings -> Modules -> Denpendencies -> Module SDK.
Bruce Sun

1
Khi bạn có hệ thống phân cấp POM với hơn hai cấp độ và plugin trình biên dịch của bạn được xác định trong POM gốc, IntelliJ có thể không nhận ra nó ở cấp độ sâu nhất. Tôi nói có thể không, bởi vì đối với một số mô-đun khác, ngay cả khi chúng mở rộng cùng POM gốc.
túc xá

202

Bạn cần vào Cài đặt và đặt bên dưới trình biên dịch Java như sau: nhập mô tả hình ảnh ở đây

đồng thời kiểm tra Cài đặt dự án


116

Đây trông giống như loại lỗi mà Maven tạo ra khi bạn không có plugin trình biên dịch được cấu hình đúng. Đây là một ví dụ về cấu hình trình biên dịch Java 8.

<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<!-- ... -->

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

<!-- ... -->

</project>

10
Đối với người mới Maven khác như bản thân mình, điều này sẽ phải chịu project, buildvà sau đó plugins.
Darren Hale

4
Ngoài ra nếu <source>1.8</source><target>1.8</target>được cấu hình, lỗi trên có thể xảy ra.
BuZZ-dEE

1
Điều này làm việc cho tôi, cảm ơn bạn! Thẻ phiên bản không giải quyết (tôi đã thay đổi nó để phù hợp với phiên bản Maven của tôi) vì vậy tôi đã nhận xét nó. Tôi tin rằng Maven sẽ tự động tìm nạp phiên bản mới nhất chính xác trong trường hợp đó, dựa trên chủ đề này: stackoverflow.com/questions/17239394/ .
Boris

84

Cách nhanh nhất tôi tìm thấy:

  • nhấn: CTRL+ SHIFT+ A(Dành cho máy Mac + SHIFT+ A)
  • kiểu: java compiler
  • nhấn: ENTER

Trong cửa sổ Cài đặt, đặt mã byte đích thành 1.8

(hoặc 9 cho java9)


3
Điều này hoàn toàn hiệu quả với tôi (cảm ơn!) Nhưng tôi không hiểu tại sao nó khác với những gì trong pom.xml, cài đặt mô-đun, v.v ...
Adam Lehenbauer

1
nhấn, để có được ưu tiên.
X. Wang

31

Có hai cách để giải quyết vấn đề này:

  1. Đặt cài đặt (File -> Settings -> Build, Execution, Deployment -> Java Compiler): nhập mô tả hình ảnh ở đây
  2. Thêm phần xây dựng vào pom.xml: nhập mô tả hình ảnh ở đây

18

Nhiều câu trả lời liên quan đến Maven là đúng nhưng bạn không phải định cấu hình plugin trực tiếp.

Giống như được mô tả trên trang wiki của Trình biên dịch Apache Maven, bạn chỉ có thể đặt 2 thuộc tính được sử dụng bởi plugin.

<project>
  [...]
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  [...]
</project>

1
@ Marvin Richter Tôi đã thử giải pháp của bạn nhưng nó không hoạt động với IntelliJ - Tôi đoán là nó chính xác trong bản dựng maven thuần (dòng lệnh), nhưng IntelliJ chỉ bỏ qua các thuộc tính này. Tôi đã phải cấu hình các plugin như được đề cập trong các giải pháp khác.
Benoit

1
Không, tôi đã không làm, bởi vì các giải pháp khác đã làm việc. Và bây giờ tôi di chuyển dự án của tôi để phân loại.
Benoit

4
Hoạt động như một bùa mê sau khi bạn nhấp chuột phải vào pom.xml -> Maven -> Reimport. Đây phải là câu trả lời được chấp nhận cho người dùng Maven.
ptkvsk

Bạn thực sự cần plugin org.apache.maven.plugins:maven-compiler-plugintrong tệp pom hoặc gradle của bạn, điều trong tài liệu muốn nói là việc đặt thuộc tính đó trong thuộc tính pom là đủ, về cơ bản vì chúng đặt các giá trị mặc định của plugin, ví dụ <source> $ { maven.compiler.source} </ source>
EliuX

Đây phải là câu trả lời được chấp nhận. Đã làm việc cho tôi trên IntelliJ 2018.2 trên mac os 10.13.5
user674669

13

Tôi đã sửa lỗi này bằng cách vào Cấu trúc dự án -> Mô-đun , tìm mô-đun được đề cập, nhấp vào tab Phụ thuộc , thay đổi Module SDKthành Project SDK.


9

Tôi đã sửa nó chỉ bằng cách thay đổi phiên bản biên dịch đích thành 1.8. Nó đang ở trong:

Tệp >> Cài đặt >> Xây dựng, Thi hành, Triển khai >> Trình biên dịch >> Trình biên dịch Java


1
Cảm ơn, Vishal. Chúng tôi phải chỉ định phiên bản mã byte dự án hoặc ít nhất là phiên bản mã byte theo mô-đun với Intellij Idea. Chỉ cần đặt nó trong pom.xml cho maven-Trình biên dịch-plugin đã không giải quyết được vấn đề cho tôi.
WebCome

6

Bạn cần phải đi đến /.idea/compiler.xmlvà thay đổi targetđến jdkmức yêu cầu .

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


5

Trong trường hợp của tôi, tôi đã khắc phục vấn đề này bằng cách mở tệp .iml của dự án (nó nằm trong thư mục gốc của dự án và có tên giống như tên của dự án) và thay đổi dòng <orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" />thành<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />

Tôi đã có mọi thứ được cấu hình như trong các câu trả lời khác ở đây nhưng vì lý do nào đó, ý tưởng cập nhật tệp .iml không chính xác.


2
Có vẻ như đôi khi Intellij không cập nhật các tệp cấu hình ngay cả khi bạn định cấu hình tất cả các menu. Bộ nhớ cache không hợp lệ và khởi động lại (sau khi chỉnh sửa các tệp cấu hình), đã thực hiện thủ thuật cho tôi. Lạ thật.
jah

1
Cám ơn rất nhiều. Cuối cùng sau khi thử và thất bại mọi giải pháp khác được chỉ định ở trên, điều này đã hoạt động.
Bansal Nitin

4

Tôi đã sửa nó bằng cách sửa đổi tập tin POM của tôi. Lưu ý bình luận cuối cùng dưới câu trả lời bình chọn cao nhất.

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <encoding>UTF-8</encoding>
        </configuration>
</plugin>

Nguồn phải phù hợp với mục tiêu.



3

Nếu bạn đang làm việc với Android-studio 1.3, hãy làm theo các bước dưới đây -

Đi đến Tệp - Cấu trúc dự án

Trong các mô-đun - ứng dụng - tab Thuộc tính , chọn Tương thích nguồn - 1.8

Tương thích mục tiêu - 1.8 .

Và bạn tốt để đi.


3

Trong tệp cấp độ ứng dụng Gradle của bạn >> compileOptions thêm hai dòng này

android {
  compileOptions {
    ...
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    ...
   }
}

Cảm ơn người đàn ông. Câu trả lời của bạn đã có hiệu quả
Solution Spirit

1

Trong tập tin trình biên dịch, bạn sẽ tìm thấy:

<bytecodeTargetLevel>
  <module name="your_project_name_main" target="1.8" />
  <module name="your_project_name_test" target="1.8" />
</bytecodeTargetLevel>

và bạn có thể thay đổi giá trị mục tiêu từ cũ sang mới đối với tôi, tôi cần thay đổi giá trị từ 1,5 thành 1,8


1

Tôi vừa trải qua một thời gian vật lộn với cùng một vấn đề. Điều duy nhất làm việc với tôi không phải là sử dụng mvn dựng sẵn (3.3.9) mà chỉ trỏ nó đến phiên bản tải xuống bên ngoài (3.5.0). Cuối cùng dự án đã mở và mọi thứ đều tốt.


1

Sự cố này xảy ra nếu mô-đun của bạn được cấu hình với bộ xử lý Chú thích và mô-đun khác thì không. Hãy cấu hình giống nhau cho tất cả các mô-đun vì nó sẽ phụ thuộc theo chu kỳ.


0

Đối với tôi, vấn đề là về việc Maven không thể tìm thấy cấu hình phù hợp, vì các mục này đã được chỉ định trong pom cha.

Thay đổi tệp -> Cài đặt -> Xây dựng, Thực thi, Triển khai -> Maven -> Tệp Cài đặt người dùng để trỏ đến cài đặt tùy chỉnh của tôi với kho lưu trữ thích hợp đã khắc phục sự cố đang ẩn.

Tìm hiểu về sự cố thông qua Trợ giúp -> Hiển thị nhật ký trong trình thám hiểm -> nhấp vào tệp nhật ký, khi trước đó chỉ gặp lỗi trong tiêu đề và "java.lang.NullPulumException" trong bảng điều khiển.


0

Giải pháp cho vấn đề rất đơn giản . Bạn phải mở tệp .idea / Trình biên dịch tệp trên Dự án İdea của bạn và

Bạn nên viết phiên bản mục tiêu phù hợp


0

Với Intellij , sử dụng Maven , bạn phải kiểm tra xem Intellij có tự động nhập dự án của bạn không. Bạn có thể kiểm tra bằng cách nhấp vào tab Maven ở bên phải Trình chỉnh sửa của bạn.

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

Nếu Dự án của bạn không có ở đây, thì hãy thêm pom.xmltệp bằng cách nhấp vào +.

Rõ ràng, dự án cũng phải có liên quan <build/>:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>

0

Nếu không có câu trả lời nào khác hoạt động, hãy kiểm tra SDK Mô-đun của bạn .

Tôi đã gặp lỗi này khi tôi cập nhật SDK dự án lên 1.8, trình biên dịch Javac thành 1.8, v.v. Cài đặt gây ra sự cố cho tôi là "Module SDK".

(trên Linux) Đi đến File > Project Structure...sau đó trong cửa sổ mở ra, chọn Modulesbên dưới Project Settings. Chọn mô-đun được đề cập từ danh sách và sau đó là Dependenciestab và đảm bảo rằng mô-đun Module SDKđược đặt phù hợp.


0

Tôi đã kiểm tra tất cả những điều trên nhưng lỗi vẫn xảy ra.

Nhưng nhập lại tất cả các dự án maven (nút tải lại trong bảng điều khiển Maven dự án) hoạt động trong trường hợp của tô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.