javac: bản phát hành mục tiêu không hợp lệ: 1,8


87

Gần đây tôi đã tải xuống JDK 1.8.0.0_06 đi kèm với NetBeans. Sau đó, tôi phát hiện ra rằng dự án JavaFx của tôi, mà tôi đang phát triển trong Java 1.7 sẽ không biên dịch trong Java 1.8, và vì vậy tôi đã giảm JDK của mình xuống 1.7. Tôi vẫn không thể làm cho nó hoạt động / biên dịch. Tôi gặp lỗi này:

javac: invalid target release: 1.8
Usage: javac <options> <source files>

Tôi thực sự bế tắc và sẽ đánh giá rất cao bất kỳ sự giúp đỡ nào.


1
nếu bạn đang đi để bước xuống, sau đó thay đổi mã nguồn của dự án của bạn để 1,7 là tốt, kích chuột phải trên của bạn Project -> Properties -> Sources windowvà thiết lập 1.7 đây
Jigar Joshi

Bạn là một người tiết kiệm cuộc sống @Jigar Joshi !!!! Cảm ơn một lần nữa ***** một nhà máy. Tôi rất biết ơn. Bạn có thể đặt câu trả lời của mình như một câu trả lời để tôi có thể chấp nhận nó. Chà! Một lần nữa cảm ơn bạn. Đã bị mắc kẹt quá lâu!
Program-Me-Rev

Nếu dự án của bạn không biên dịch theo Java 1.8, bạn có thể đang làm sai một điều gì đó khá nghiêm trọng (ví dụ: bạn có các trường tĩnh cho các thành phần giao diện người dùng trong mã bạn đã đăng trong hàng đợi khác của mình, đây là một lỗi thiết kế nghiêm trọng). Có lẽ tốt hơn là bạn nên khắc phục sự cố đó hơn là chỉ hoàn nguyên về phiên bản mà từ đó nhiều người dùng sẽ nâng cấp vào một thời điểm nào đó trong tương lai.
James_

Bạn đúng @James_D. Đây là dự án đầu tiên của tôi trong java. Tôi đã tự học lập trình khá nhiều và vẫn chưa hiểu được toàn bộ về việc tránh các thành viên tĩnh, giao diện và phần còn lại về tính đa hình cho đến bây giờ. Dự án của tôi hơi quá lớn để có thể chỉnh sửa tất cả cùng một lúc. Tôi dự định chỉnh sửa nó và chuyển sang chèn phụ thuộc qua Spring từng chút một khi tôi hoàn thành các khu vực còn lại khác. Đó là một bài học đau đớn, nhưng cũng được học.
Program-Me-Rev,

1
Có các phiên bản Java 1.8.0, 1.8.0_05 và 1.8.0_11, nhưng không có phiên bản 1.8.0.0_06.
David Conrad

Câu trả lời:


33

nếu bạn định từ bỏ, hãy thay đổi nguồn dự án của bạn thành 1.7,

right click on your Project -> Properties -> Sources window 

và đặt 1.7ở đây

lưu ý: tuy nhiên tôi sẽ đề nghị bạn tìm ra lý do tại sao nó không hoạt động trên 1.8


66

Đối với IntelliJ14, bạn có thể phải thay đổi phiên bản bytecode wrt JDK bạn đang sử dụng (trong cài đặt chung):

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


Không hiệu quả với tôi, thay đổi phiên bản Target bytecode thành 1.8 nhưng gặp lỗi tương tự
tribbloid

Nhưng câu hỏi là về Netbeans?
Jolta

27
  1. Tải xuống JDK 8 .
  2. Chỉnh sửa env var của bạn JAVA_HOMEđể trỏ đến JDK 1.8 mới được cài đặt: Nhấp R-click vào Máy tính của tôi -> Thuộc tính -> Cài đặt Hệ thống Nâng cao -> Biến Môi trường tìm thấy JAVA_HOMEtrên danh sách và đặt giá trị của nó thành một cái gì đó như vậy:

    C:\Program Files\Java\jdk1.8.0_31
    
  3. Tìm phiên bản cũ và chỉnh sửa nó trong PATHbiến thể.

  4. Có thể bạn sẽ cần phải khởi động lại hệ thống.

Nên được thực hiện.


23

Nếu lỗi này xảy ra khi chạy tác vụ Gradle (hoặc Maven), bạn cần sửa đổi cấu hình công cụ xây dựng đó để trỏ đến cài đặt Java JDK 1.8 của bạn theo lộ trình sau:

Tệp -> Cài đặt -> Xây dựng, Thực thi, Triển khai -> Công cụ Xây dựng -> Gradle

Ở đó, bạn kiểm tra dự án Gradle được liên kết có phải là dự án bạn đang làm việc không và chọn Gradle JVM (Bạn đã bỏ lỡ điều này khi nhập dự án gradle vào IntelliJ)

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

Hãy nhớ khi nhập một dự án Gradle (hoặc Maven) để đặt JVM mục tiêu một cách chính xác tại đây: nhập mô tả hình ảnh ở đây


14

Javac của bạn không trỏ đến java chính xác.

Kiểm tra vị trí mà javac của bạn đang trỏ bằng lệnh sau:

update-alternatives --config javac

Nếu nó không được trỏ đến javac mà bạn muốn biên dịch, hãy trỏ nó tới "/ JAVA8_HOME / bin / javac", hoặc java mà bạn muốn biên dịch.


tại sao -1, tôi gặp vấn đề tương tự và đó là do javac của tôi không được đặt thành phiên bản java đúng?
Piyush Jajoo

Lưu ý rằng cấu hình có thể bị hỏng theo cách java và javac được chọn từ các bản phân phối khác nhau!
Audrius Meskauskas

9

Hầu hết thời gian, loại sự cố này xảy ra do phiên bản java không chính xác. Đảm bảo rằng các biến PATH và JAVA_HOME của bạn đang trỏ đến phiên bản chính xác.


Yup - đó là nguyên nhân của tôi quá
anh chàng mograbi

4

Cài đặt Maven:

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

4

Không có giải pháp nào trước đây phù hợp với tôi.

Tôi đã giải quyết nó bằng cách chỉnh sửa .idea / compiler.xml Có "thêm" (1) và (2) bản sao của mô-đun xấu với các mục tiêu khác nhau. Tôi đã xóa các mục không liên quan và thay đổi các mục tiêu trong phần thành 1.8 và nó hoạt động.


Điều đó đã sửa chữa nó cho tôi.
davidmerrick

2

Đối với IntelliJ IDEA Ultimate phiên bản mới nhất kể từ ngày 18 tháng 12 năm 2017, nếu các đề xuất trên không hoạt động, hãy thử các cách sau: Nhấp chuột phải vào dự án và điều hướng đến "Mở Cài đặt mô-đun". Mở nó, sau đó thay đổi "Mức độ ngôn ngữ" từ menu thả xuống.


Ngoài ra, hãy đảm bảo rằng trong Cài đặt mô-đun dưới tab Phụ thuộc, SDK mô-đun chính xác được chọn.
Rene Juuse


1

nếu bạn định từ bỏ, hãy thay đổi nguồn dự án của bạn thành 1.7,

nhấp chuột phải vào cửa sổ Dự án -> Thuộc tính -> Nguồn của bạn và đặt 1.7 tại đây "Jigar Joshi

Ngoài ra, hãy truy cập build-impl.xmlvà tìm kiếm thuộc tính excludeFromCopy="${copylibs.excludes}"và xóa thuộc tính này trên mã của tôi ở dòng 827 nhưng tôi đã thấy nó ở các dòng khác

đối với tôi đã lấy mã từ MAC OS java 1.8 sang WIN XP java 1.7


1

Ngoài ra, tôi đã kiểm tra pom.xml và thay đổi

<java.version>1.8</java.version>

đến

<java.version>1.7</java.version>

Gracias, điều này đã sửa nó cho tôi, rất đơn giản.
Fabii

1

Tôi gặp vấn đề tương tự với netbeans, nhưng bản dựng mvn vẫn ổn trong cửa sổ cmd. Đối với tôi, sự cố đã được giải quyết sau khi thay đổi JDK của netbeans (trong netbeans.conf như bên dưới),

netbeans_jdkhome = "C: \ Program Files \ Java \ jdk1.8.0_91"


Chỉnh sửa: Có vẻ như nó được đề cập ở đây: lỗi netbeans 236364


1

Tôi gặp vấn đề tương tự trong Cộng đồng IntelliJ IDEA với Maven và tôi phải nhập lại dự án bằng cách nhấp chuột phải vào dự án trong tab Dự án -> Maven -> Nhập lại


0

Cài đặt bản phát hành mới hơn của IDEA Community (2018.3 thay vì 2017.x) đã được giải quyết vấn đề của tôi với cùng một lỗi nhưng phiên bản java: 11. Reimport đã không làm việc cho tôi. Nhưng nó đáng để thử.

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.