Я пытаюсь запустить тест JUnit с 1.5 JRE, но получить сообщение об ошибке:
java.lang.UnsupportedClassVersionError: Bad version number in .class file
Когда я переключаюсь на JRE 1.6 (на самом деле JDK, но это не должно иметь значения, правильно?) everythings хорошо работают.
Таким образом, вопросы:
Выборочная проверка нескольких классов показывает, что файл jar JUnit 4.8.2
был скомпилирован с помощью 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
.
В pom.xml Junit указано jdk 1.5. http://github.com/KentBeck/junit/blob/master/pom.xml
Текущий файл .jar для JUnit 4.8.2 был скомпилирован с / для Java 5 (номер версии класса 49.0).
Я помню, что ранняя версия была случайно собрана с Java 6 (и без ключа -target), но это была просто ошибка.