Какая версия 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