我试图运行具有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?
我试图运行具有1.5 JRE JUnit测试,但得到的错误信息:什么Java版本4.8
java.lang.UnsupportedClassVersionError: Bad version number in .class file
当我切换到JRE 1.6(实际上是JDK但不该”没关系,对吧?)万物都很好。
所以问题是:
几类的抽查显示,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
传递给编译器。
JUnit 4.8.2的当前.jar文件是用/ for Java 5编译的(类版本号是49.0)。
我记得一个早期的版本不小心正在用Java 6构建(没有-target开关),但那只是一个错误。
Junit的pom.xml说jdk 1.5。 http://github.com/KentBeck/junit/blob/master/pom.xml
culprint是我使用的另一个库。 – 2010-05-28 18:08:52