2010-04-29 38 views
7

Tôi cố gắng để chạy thử nghiệm JUnit với 1,5 JRE, nhưng nhận được thông báo lỗi:phiên bản java gì là cần thiết cho JUnit 4,8

java.lang.UnsupportedClassVersionError: Bad version number in .class file

Khi tôi chuyển sang JRE 1.6 (thực sự là một JDK nhưng điều đó shouldn' t vấn đề, phải không?) everythings hoạt động tốt.

Vì vậy, câu hỏi là:

  • Chúng ta có thực sự cần Java 6 cho phiên bản JUnit hiện tại?
  • phiên bản JUnit mới nhất, hoạt động với Java 5 là gì?

Trả lời

6

Kiểm tra điểm của một vài lớp cho thấy tệp jar JUnit 4.8.2 được biên dịch bằng java 5 hoặc bằng trình biên dịch java 6 với tùy chọn -target để nó tạo tệp lớp tương thích java5.

Một giải thích hợp lý hơn nhiều là bạn đã vô tình biên soạn thử nghiệm bạn muốn chạy với Java 6 JDK. Điều gì:

javap -verbose -classpath YOUR_TOP_DIRECTORY com.yourname.YourTest 

nói ở đầu đầu ra của nó cho "phiên bản chính"? Nếu nó nói 50, thì vấn đề là bạn đã biên dịch lớp thử nghiệm của bạn chỉ cho java 6. Bạn cần sử dụng trình biên dịch JDK 5 hoặc chuyển tùy chọn -target 1.5 tới trình biên dịch của bạn.

+1

Dấu vân tay là một thư viện khác mà tôi đã sử dụng. –

5

Tệp .jar hiện tại cho JUnit 4.8.2 được biên dịch với/cho Java 5 (số phiên bản lớp là 49.0).

Tôi nhớ một phiên bản trước đó vô tình được xây dựng với Java 6 (và không có chuyển đổi mục tiêu), nhưng đó chỉ đơn giản là một sai lầm.

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