2010-04-29 17 views
7

Estoy tratando de ejecutar la prueba JUnit con un 1,5 JRE, pero el mensaje de error:¿Qué versión de Java se necesita para JUnit 4.8

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

Cuando cambio a JRE 1.6 (en realidad un JDK, pero que shouldn' t importa, ¿no?) todo funciona bien.

Así que las preguntas son:

  • lo que realmente necesita Java 6 para la versión actual de JUnit?
  • ¿Cuál es la última versión de JUnit, que funciona con Java 5?

Respuesta

6

un control al azar de algunas clases muestra que el archivo JUnit 4.8.2 frasco fue compilado con Java 5, o con el compilador de Java 6 con la opción -target configurar para que haga los archivos de clase compatible con java5.

Una explicación mucho más probable es que compiló accidentalmente la prueba que quería ejecutar con Java 6 JDK. ¿Qué significa:

javap -verbose -classpath YOUR_TOP_DIRECTORY com.yourname.YourTest 

dicen en la parte superior de su salida para "versión principal"? Si dice 50, entonces el problema es que ha compilado su clase de prueba solo para java 6. Necesita usar un compilador JDK 5 o pasar la opción -target 1.5 a su compilador.

+1

La culpa fue otra biblioteca que utilicé. –

5

El archivo .jar actual para JUnit 4.8.2 se compiló con/para Java 5 (el número de versión de clase es 49.0).

Recuerdo una versión anterior creada accidentalmente con Java 6 (y sin el interruptor de objetivo), pero eso fue simplemente un error.

Cuestiones relacionadas