2012-07-05 34 views
18

Tôi có một dự án trong Eclipse mà trước đây đã sử dụng JRE7 và tham chiếu các thư viện hệ thống JRE7. Tôi hoàn toàn cần nó để chạy trong JRE6. Tôi đã không sử dụng bất kỳ cú pháp cụ thể nào của Java 7 nên mã nguồn chính nó hoàn toàn tương thích. Dưới đây là những gì tôi đã thực hiện:Làm cách nào để chuyển đổi dự án Eclipse của tôi sang phiên bản Java cũ hơn?

  • Tôi đã cài đặt JDK6.
  • Sau đó, tôi đã đi tới Cửa sổ> Tùy chọn> Java> JRE đã cài đặt và đặt JRE6 làm mặc định.
  • Tôi đã định cấu hình đường dẫn xây dựng của dự án để tham khảo thư viện hệ thống JRE6 chứ không phải thư viện JRE7.
  • Cuối cùng tôi đã đi đến Chạy cấu hình> JRE và đặt nó chạy trong JRE6.

Ngay sau đó bước cuối cùng, phía trên cùng của cuộc đối thoại cho thấy một thông báo nói rằng:

JRE không tương thích với dự án .class khả năng tương thích file: 1,7

Và khi tôi chạy dự án tôi nhận được thông báo lỗi này:

java.lang.UnsupportedClassVersionError: ExampleProcessingApp : Unsupported major.minor version 51.0 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277) 
    at java.net.URLClassLoader.access$000(URLClassLoader.java:73) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:212) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:314) 
    at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:146) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
    at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:608) 
    at sun.applet.AppletPanel.createApplet(AppletPanel.java:798) 
    at sun.applet.AppletPanel.runLoader(AppletPanel.java:727) 
    at sun.applet.AppletPanel.run(AppletPanel.java:380) 
    at java.lang.Thread.run(Thread.java:679) 

Như tôi đã đề cập trước đây, mã thực tế của dự án không khác với cú pháp Java 6 vì vậy nó sẽ chạy trong JRE6. Vì vậy, có lẽ tôi cần phải bằng cách nào đó biên dịch lại tất cả các tập tin .class từ mã nguồn. Tôi nghĩ Eclipse sẽ tự động làm điều này. Bất kỳ ý tưởng?

+6

bạn có làm sạch thư mục xây dựng của mình không? – sergiofbsilva

+0

Ngoài ra, hãy kiểm tra xem bạn có phiên bản Java cũ hơn không. Bạn có thể cần phải cập nhật hoặc cố gắng cài đặt lại phiên bản trên máy tính của mình. – Kurty

Trả lời

35

Đầu tiên, làm sạch dự án của bạn:

Project> sạch

Nếu điều đó không giải quyết được mọi thứ ...

Thứ hai kiểm tra dự án cụ thể trình biên dịch java của bạn:

Project> Properties > Java Compiler

+0

Tôi thực sự đã thực hiện bước thứ hai mà bạn đã đề cập nhưng tôi không dọn dẹp/xây dựng lại dự án của mình và dường như đã sửa nó. Cảm ơn rất nhiều! – Jonathan

3

Tôi nghĩ Eclipse sẽ tự động thực hiện việc này. Bất kỳ ý tưởng?

Eclipse không làm sạch tất cả các dự án cho đến khi bạn yêu cầu. Nó chỉ làm sạch các tệp lớp được tạo của các nguồn bạn đã sửa đổi. Bạn nên làm một xây dựng sạch của giải pháp của bạn, xây dựng lại tất cả mọi thứ và chạy một lần nữa, nó sẽ làm việc tốt.

1

Tôi đã đứng đầu một trường hợp làm sạch dự án đã không giải quyết được vấn đề. Tôi thực sự đã phải đóng và mở lại các dự án cụ thể để làm cho nó hoạt động.

7

Phương pháp thứ hai do Colin cung cấp đã làm việc cho tôi.

Đây là một hình ảnh đại diện của tất cả các bước này cho cách tiếp cận rằng:

enter image description here enter image description here enter image description here enter image description here

0

Nhờ tất cả. Mặc dù đã được giải quyết, Tôi muốn thêm một cách khác để làm điều này để thêm một hương vị khác.


Nó có thể được thực hiện bằng cách chỉnh sửa bằng tay các ưu đãi dự án trong tập tin project_directory/.settings/org.eclipse.jdt.core.prefs và sau đó làm mới dự án trong nhật thực.

Change from 1.7 to 1.6

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