Какая версия java необходима для JUnit 4.8

Я пытаюсь запустить тест JUnit с 1.5 JRE, но получаю сообщение об ошибке:

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

когда я переключаюсь на jre 1.6 (на самом деле JDK, но это не должно иметь значения, верно?) все работает нормально.

поэтому вопросы:

  • действительно ли нам нужна Java 6 для текущей версии JUnit?
  • какова новейшая версия JUnit, которая работает с Java 5?

3 ответов


выборочная проверка нескольких классов показывает, что 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 вашему компилятору.


текущего .файл jar для JUnit 4.8.2 был скомпилирован с / для Java 5 (номер версии класса-49.0).

Я помню, что более ранняя версия случайно была построена с Java 6 (и без переключателя-target), но это была просто ошибка.


пом.xml Junit говорит jdk 1.5. http://github.com/KentBeck/junit/blob/master/pom.xml