IDEA: javac: nguồn phát hành 1.7 yêu cầu phát hành mục tiêu 1.7


474

Khi chạy thử nghiệm JUnit, sử dụng IntelliJ IDEA, tôi nhận được

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

Làm thế nào tôi có thể sửa điều này?

  • Sử dụng SDK 1.7
  • Trình độ ngôn ngữ mô-đun là 1,7

Maven xây dựng hoạt động tốt. (Đó là lý do tại sao tôi tin điều này trong vấn đề cấu hình IDEA)

Câu trả lời:


689

Nhiều khả năng bạn có các tùy chọn trình biên dịch không chính xác được nhập từ Maven tại đây:

tùy chọn trình biên dịch

Đồng thời kiểm tra các cài đặt phiên bản dự án và mô-đun ( mục tiêu ) được nêu trên ảnh chụp màn hình.

Những nơi khác có mức ngôn ngữ nguồn được cấu hình:

  • Kết cấu dự án | Dự án

dự án

  • Kết cấu dự án | Mô-đun (kiểm tra mọi mô-đun) | Nguồn

nguồn

Cấp độ ngôn ngữ mặc định của Maven là 1,5 (5.0), bạn sẽ thấy phiên bản này là cấp độ ngôn ngữ Mô-đun trên ảnh chụp màn hình ở trên.

Điều này có thể được thay đổi bằng cách sử dụng cấu hình maven-Trình biên dịch-plugin bên trong pom.xml:

<project>
  [...]
  <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>
  [...]
</project>

hoặc là

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

IntelliJ IDEA sẽ phản ánh cài đặt này sau khi tái nhập khẩu dự án Maven trong dự án Maven cửa sổ công cụ:

nhập lại


2
Chính xác. Là cài đặt này phổ biến cho tất cả các mô-đun trong một dự án, hoặc nó cụ thể cho một mô-đun nhất định?
James Raitsev

1
Cài đặt này là cho mỗi dự án, ảnh hưởng đến tất cả các mô-đun.
CrazyCoder

8
Có bất kỳ lý do tại sao sau khi sửa lỗi này và áp dụng rằng nó sẽ trở lại một số giá trị không chính xác (thông qua thay đổi maven hoặc một cái gì đó)?
Patrick

5
@Patrick, pom.xmlcấu hình trình cắm thêm trình biên dịch java của bạn có thể chỉ định phiên bản Java sẽ ghi đè cài đặt này vào lần tới khi bạn thay đổi tệp pom.xml (nếu bật lại tự động) hoặc nhập lại dự án theo cách thủ công.
CrazyCoder

1
@CrazyCoder Tôi đã thay đổi pom.xml của mình sau khi thay đổi điều này sớm hơn một lần (đang chờ các thay đổi khác đến pom), vì vậy nghe có vẻ như là một lời giải thích khá hợp lý. Cảm ơn
Patrick

358

IntelliJ 15, 2016 & 2017

Tương tự như đã thảo luận dưới đây cho IntelliJ 13 & 14, nhưng với một cấp độ bổ sung trong bảng Cài đặt / Tùy chọn: 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 .

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

IntelliJ 13 & 14

Trong IntelliJ 13 và 14, kiểm tra Cài đặt> Trình biên dịch> Giao diện người dùng Trình biên dịch Java để đảm bảo bạn không nhắm mục tiêu một phiên bản mã byte khác trong mô-đun của mình.

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


3
Tôi đã phải xóa các mô-đun của mình và để nó tự động giải quyết (để trống cho jdk mặc định)
Akin Okegbile

3
Hoạt động cho Idea14.1 mới nhất
Tushar

Vì vậy, những gì sửa chữa ở đây?
AlikElzin-kilaka

@ AlikElzin-kilaka, đặt mức mục tiêu thành bất cứ thứ gì bạn cần.
Drew Noakes

Ai đó có thể giải thích lý do tại sao họ sẽ đặt các cài đặt mô-đun cụ thể trong màn hình cấu hình tùy chọn toàn cầu, không phải trong cài đặt mô-đun không ??
MK.

61

Trong IntelliJ IDEA 14.1 , "Phiên bản mã byte đích" ở một nơi khác.

Thay đổi sau đây có hiệu quả với tôi:

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 : thay đổi Phiên bản mã byte mục tiêu từ 1.5 thành 1.8

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

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


hoặc tốt hơn là để trống, khi nó có thể được xác định từ jdk!
Dragonborn

Tại sao có cấu hình khác với maven?
AlikElzin-kilaka

42

Bạn đã xem cấu hình bản dựng của mình chưa, nếu bạn sử dụng maven 3 và JDK 7

<build>
    <finalName>SpringApp</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        ...
    </plugins>
    ...
</build>

22

Tôi đã gặp phải vấn đề này và cách khắc phục là vào Cài đặt dự án> Mô-đun> nhấp vào mô-đun cụ thể> tab Phụ thuộc. Tôi nhận thấy SDK Module vẫn được đặt trên 1.6, tôi đã thay đổi nó thành 1.7 và nó hoạt động.


Tôi đã thử điều này ... cuối cùng tôi đã phải xóa các mô-đun riêng lẻ và để chúng tự động giải quyết.
Akin Okegbile

14

Tôi đã tìm thấy các tùy chọn bắt buộc ('phiên bản mã byte đích') trong cài đặt> trình biên dịch> trình biên dịch java trong trường hợp của tôi (ý tưởng intelij 12.1.3)


10

Sửa đổi tệp cài đặt trình biên dịch của dự án theo đường dẫn sau và thay đổi 'đích' thành 1.7:

/project/.idea/compiler.xml

<bytecodeTargetLevel>
  <module name="project-name" target="1.7" />
</bytecodeTargetLevel>

Cảm ơn điều này đã làm việc cho tôi! Đừng quên thực hiện "Tạo mô-đun '[tên ứng dụng của bạn]'" bằng cách nhấp chuột phải vào dự án
Shehaaz

5

Tôi đã giải quyết nó bằng cách đặt trường trống:

Cài đặt> Trình biên dịch> Trình biên dịch Java> Phiên bản mã byte dự án

Hơn IntelliJ sử dụng phiên bản mặc định của JDK.


4

Từ lúc này đến lúc khác tôi cũng gặp lỗi này mà không có lý do rõ ràng. Tôi đã thay đổi tất cả các loại cài đặt trên trình biên dịch / mô-đun, nhưng cuối cùng tôi chỉ tạo lại dự án IntelliJ bằng cách nhập lại dự án Maven và vấn đề đã được giải quyết. Tôi nghi no la một con bọ.

IntelliJ 12 129.961


Tương tự ở đây cho IntelliJ 14.1.2. Nhập lại dự án và nó đã được sửa chữa.
srikanth

4

Tôi đã đạt được điều này sau khi nâng cấp nhỏ từ IntelliJ IDEA 14 lên v14.1. Đối với tôi, việc thay đổi bản chỉnh sửa của pom top / Parent đã được trợ giúp và sau đó nhấp vào nhập lại Maven (nếu nó không tự động).

Nhưng nó có thể chỉ đủ để Nhấp chuột phải vào (các) mô-đun / tổng hợp / mô-đun mẹ và Maven -> Reimport.


Điều này làm việc cho tôi! tôi đã làm điều đó cho mô-đun cấp cao nhất của tôi và các mô-đun con của tôi
xóa bỏ

2

Tôi đã giải quyết phương pháp dưới đây

Tệp >> Cấu trúc dự án >> Dự án >> Cấp độ ngôn ngữ dự án -> không đặt phiên bản phù hợp (ví dụ: 1.5)


1

kiểm tra .idea / misc.xml đôi khi bạn cần thay đổi thuộc tính ngôn ngữLevel = "JDK_1_X"


1

Nếu đó là một dự án Gradle, trong tệp build.gradle của bạn, hãy tìm kiếm các cài đặt sau:

sourceCompatibility = "xx"
targetCompatibility = "xx"

Đối với tất cả các dự án con, trong tệp build.gradle gốc của bạn, bạn có thể đặt:

subprojects { project ->
    sourceCompatibility = "1.7"
    targetCompatibility = "1.7"
}

Mặc dù bạn có thể đặt thủ công các cấp độ ngôn ngữ trong Idea> Cài đặt, nếu đó là dự án Gradle, Idea sẽ tự động đồng bộ hóa các tệp .iml mô-đun từ cài đặt Gradle (được thử nghiệm với Idea 15+). Vì vậy, tất cả các thay đổi thủ công của bạn được ghi đè khi lớp được làm mới.

Dựa trên tài liệu Gradle , nếu chúng không được đặt, thì cấu hình JVM hiện tại được sử dụng.


1

Tôi tìm thấy một cách khác để chạy vào lỗi này. Bạn có thể nhận được điều này nếu bạn đã tổ chức lại cấu trúc thư mục của mình và một trong số các poms của bạn đang trỏ đến cha mẹ cũ không còn cấu hình javac (vì cấu hình đó đã được chuyển sang mức trung bình). Nếu điều này xảy ra, mức cao nhất mặc định là 1,5 và pom cấp thấp hơn sẽ thừa hưởng nó.

Vì vậy, một điều khác để kiểm tra khi bạn thấy lỗi này là cấu trúc pom của bạn phù hợp với cấu trúc thư mục của bạn đúng cách.


1

Nếu bản dựng Maven hoạt động tốt, hãy thử đồng bộ hóa cấu trúc của các dự án Maven và IntelliJ IDEA.

Trong cửa sổ công cụ Maven , nhấp vào nút refresh Làm tươi. Khi nhấn nút này, IntelliJ IDEA phân tích cấu trúc dự án trong cửa sổ công cụ Maven.

Lưu ý rằng điều này có thể không hữu ích nếu bạn đang sử dụng bản dựng EAP, vì đôi khi tính năng đồng bộ hóa Maven có thể bị hỏng.


0

Hãy chắc chắn rằng phụ thuộc đúng được chọn. Tệp> Cấu trúc dự án

Chọn dự án của bạn và điều hướng đến tab Phụ thuộc. Chọn phụ thuộc đúng từ thả xuống hoặc tạo mới.


0

Nếu tất cả các giải pháp trước đó không hiệu quả với bạn (đó là trường hợp của tôi), bạn có thể xóa các tệp cấu hình intellij:

  • project_directory / .idea / Trình biên dịch
  • project_directory / .idea / encodings.xml
  • project_directory / .idea / misc.xml
  • project_directory / .idea / Module.xml
  • project_directory / .idea / vcs.xml
  • project_directory / .idea / workspace.xml
  • Vân vân.

Intellij sẽ tái tạo những cái mới sau. Tuy nhiên, HÃY CẨN THẬN, điều này cũng sẽ xóa tất cả cấu hình intellij được thực hiện trên projet (tức là: cấu hình của chế độ gỡ lỗi, ...)


0

Bạn cần thay đổi phiên bản trình biên dịch Java trong cấu hình bản dựng.

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

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.