我正在尝试使用1.5 JRE运行JUnit测试,但收到错误消息:
java.lang.UnsupportedClassVersionError: Bad version number in .class file
当我切换到JRE 1.6(实际上是JDK,但这不重要,对吗?)时,每件事都可以。
所以问题是:
答案 0 :(得分:7)
对几个类进行抽查显示JUnit 4.8.2
jar文件是使用java 5编译的,或者是使用设置了-target
选项的java 6编译器编写的,这样就可以生成与java5兼容的类文件
更有可能的解释是,您不小心编译了想要使用Java 6 JDK运行的测试。做什么:
javap -verbose -classpath YOUR_TOP_DIRECTORY com.yourname.YourTest
在其主要版本的输出顶部说?如果它显示50
,那么问题是你只编译了java 6的测试类。您需要使用JDK 5编译器或将选项-target 1.5
传递给编译器。
答案 1 :(得分:5)
JUnit 4.8.2的当前.jar文件是使用/ for Java 5编译的(类版本号是49.0)。
我记得早期版本是用Java 6意外构建的(并且没有-target开关),但这只是一个错误。
答案 2 :(得分:3)
Junit的pom.xml说jdk 1.5。 http://github.com/KentBeck/junit/blob/master/pom.xml