2011-08-30 38 views
78

Possible Duplicate:
unsupported major .minor version 51.0ngoại lệ trong chủ đề java.lang.UnsupportedClassVersionError "chính": a (không được hỗ trợ MAJOR.MINOR phiên bản 51,0)

Tôi đã cài đặt JDK7, một chương trình chào từ đơn giản được biên dịch nhưng khi tôi chạy này tôi đã nhận sau ngoại lệ.

Exception in thread "main" java.lang.UnsupportedClassVersionError: a (Unsupported major.minor version 51.0) 
    at java.lang.ClassLoader.defineClass0(Native Method) 
    at java.lang.ClassLoader.defineClass(Unknown Source) 
    at java.security.SecureClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.access$100(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClassInternal(Unknown Source) 

Tôi đã kiểm tra java -version trên dấu nhắc lệnh, đó cho thấy phiên bản Java 1.4.2_03 nhưng khi tôi đã cố gắng để cài đặt phiên bản java mới từ java.com nó nói rằng tôi đang gặp đề nghị phiên bản Java 7.

+1

Lưu ý rằng bạn có thể biên dịch cho thời gian chạy Java trước đó bằng tùy chọn "-target" thành javac. –

+1

Không phải là một bản sao - vấn đề này là JDK7 là hiện tại, ngay sau JDK1.4.2 trên đường dẫn. –

+1

Đối với MacOSX, phần sau đã hoạt động trên Máy của tôi. xuất JAVA_HOME =/Thư viện/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Nội dung/Trang chủ/jre –

Trả lời

33

Sao chép nội dung của cài đặt PATH vào sổ ghi chú và kiểm tra xem vị trí của 1.4.2 có đến trước đó của 7. Nếu có, hãy xóa đường dẫn đến 1.4.2 trong cài đặt PATH và lưu nó.

Sau khi lưu và áp dụng "Biến môi trường" gần và mở lại dòng cmd. Trong XP, đường dẫn không được phản ánh trong các chương trình đang chạy.

+0

Có Tôi đang có một mục nhập trong đường dẫn befor đường dẫn JDK 7 có "H: \ sw \ chung \ oracle10g \ jre \ 1.4.2 \ bin". Tôi có nên loại bỏ điều này và tôi nên thay đổi biến PATH dưới phần biến hệ thống với đường dẫn sửa đổi này? – Adnan

+0

Có. Xóa tham chiếu đến "H: \ sw \ ... \ 1.4.2 \ bin;" từ PATH dưới phần biến hệ thống. Áp dụng các thay đổi và sau đó đóng dòng lệnh hiện tại và mở lại nó. – arunmur

+1

: Cảm ơn v v v nhiều vì thời gian quý báu của bạn, nó hoạt động tốt ngay bây giờ. – Adnan

2

Có vẻ như bạn cần thay đổi đường dẫn đến java thực thi để khớp với phiên bản mới nhất. Về cơ bản, cài đặt Java mới nhất không nhất thiết có nghĩa là máy của bạn được cấu hình để sử dụng phiên bản mới nhất. Bạn không đề cập đến bất kỳ chi tiết nền tảng nào, vì vậy đó là tất cả những gì tôi có thể nói.

+0

Cảm ơn thời gian quý báu của bạn. Làm thế nào tôi có thể thay đổi đường dẫn đến Java của tôi thực thi? Tôi đang sử dụng windows xp. – Adnan

+1

Xem phần này: http://www.java.com/en/download/help/path.xml Có thể bạn sẽ có thể xác minh ở đó đường dẫn hiện tại đang trỏ đến đâu và thay đổi nó thành đúng. Hãy rất cẩn thận khi sửa đổi biến PATH. Bạn có thể làm hỏng máy tính của bạn nghiêm trọng – hvgotcodes

+0

Tôi đã thiết lập đường dẫn và JAVA_HOME để trỏ JDK7. – Adnan

71

Hãy thử sudo update-alternatives --config java từ dòng lệnh để đặt phiên bản JRE bạn muốn sử dụng. Điều này sẽ khắc phục nó.

+0

Cảm ơn bạn, điều này hoàn toàn làm việc trên Ubuntu 12.04 – markdrake

+0

Đã làm lừa cho tôi trên Ubuntu Server 12.04 quá! :) – xorinzor

+0

Điều này làm việc cho tôi, nhưng chỉ sau khi tôi khởi động lại Eclipse. – elliptic1

9

Giả sử bạn đang sử dụng Eclipse, trên MAC bạn có thể:

  1. Launch Eclipse.app
  2. Chọn Eclipse -> Preferences
  3. Chọn Java -> Installed JREs
  4. Nhấp vào nút Add...
  5. Chọn MacOS X VM như các loại JRE . Nhấn Next.
  6. Trong "JRE Trang chủ:" lĩnh vực, loại /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home
  7. Bạn sẽ thấy các thư viện hệ thống trong danh sách với tựa đề "JRE hệ thống thư viện:"
  8. Cho JRE một cái tên. Tên được đề xuất là JDK 1.7. Nhấp vào Kết thúc.
  9. Chọn hộp kiểm bên cạnh mục nhập JRE bạn vừa tạo. Điều này sẽ khiến Eclipse sử dụng nó làm JRE mặc định cho tất cả các dự án Java mới. Nhấp vào OK.
  10. Bây giờ, hãy tạo một dự án mới. Để xác minh này, từ menu, chọn File -> New -> Java Project.
  11. Trong hộp thoại xuất hiện, hãy nhập tên mới cho dự án của bạn. Để xác minh này, hãy nhập Test17Project
  12. Trong phần JRE của hộp thoại, chọn Use default JRE (currently JDK 1.7)
  13. Nhấp vào Hoàn tất.

Hope this helps

+1

Trên Mac OS X Yosemite (10.10.5), tôi tìm thấy jdk tại **/Library/Java/JavaVirtualMachines/jdk1.7.0_79 .jdk/Nội dung/Trang chủ/** – GiriB

+0

Bạn tiết kiệm thời gian của tôi, cảm ơn rất nhiều ~ – BinGoBinBin

+0

Cũng nhớ thay đổi đường dẫn xây dựng cho các dự án hiện có để sử dụng JDK mới – yankel

8

Tôi có vấn đề này, sau khi cài đặt JDK7 bên cạnh Java 6. Các mã nhị phân đã được cập nhật một cách chính xác bằng update-alternatives --config java để JDK7, nhưng biến $JAVA_HOME môi trường vẫn chỉ vào thư mục cũ của Java 6 .

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