2010-04-29 78 views
7

我试图运行具有1.5 JRE JUnit测试,但得到的错误信息:什么Java版本4.8

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

当我切换到JRE 1.6(实际上是JDK但不该”没关系,对吧?)万物都很好。

所以问题是:

  • 我们真的需要Java 6的当前JUnit版本?
  • 什么是最新的JUnit版本,适用于Java 5?

回答

6

几类的抽查显示,JUnit 4.8.2 jar文件与Java 5的编译或使用Java 6编译器与-target选项设置,这样它使Java5的兼容的类文件。

更有可能的解释是您已经意外编译了您想用Java 6 JDK运行的测试。什么:

javap -verbose -classpath YOUR_TOP_DIRECTORY com.yourname.YourTest 

说在其“主要版本”的输出顶部?如果它说50,那么问题在于你只编译了你的测试类java 6。您需要使用JDK 5编译器或将选项-target 1.5传递给编译器。

+1

culprint是我使用的另一个库。 – 2010-05-28 18:08:52

5

JUnit 4.8.2的当前.jar文件是用/ for Java 5编译的(类版本号是49.0)。

我记得一个早期的版本不小心正在用Java 6构建(没有-target开关),但那只是一个错误。