I am trying to run JUnit test with a 1.5 JRE, but get the error Message:
java.lang.UnsupportedClassVersionError: Bad version number in .class file
When I switch to JRE 1.6 (actually a JDK but that shouldn’t matter, right?) everythings works fine.
So the questions are:
- Do we really need Java 6 for the current JUnit version?
- what is the newest JUnit version, that works with Java 5?
A spot check of a few classes shows that the
JUnit 4.8.2jar file was compiled with java 5, or with the java 6 compiler with the-targetoption set so that it makes java5-compatible class files.A far more likelier explanation is that you’ve accidentally compiled the test you wanted to run with a Java 6 JDK. What does:
say at the top of its output for “major version”? If it says
50, then the problem is that you’ve compiled your test class for java 6 only. You need to either use a JDK 5 compiler or pass the option-target 1.5to your compiler.