2010-04-29 13 views
7

Sto cercando di eseguire test JUnit con un 1.5 JRE, ma ottenere il messaggio di errore:Quale versione di Java è necessario per JUnit 4.8

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

Quando si passa a JRE 1.6 (in realtà un JDK, ma che shouldn' t matter, giusto?) tutto funziona bene.

Quindi le domande sono:

  • Abbiamo davvero bisogno di Java 6 per la versione JUnit attuale?
  • qual è la versione più recente di JUnit, che funziona con Java 5?

risposta

6

un controllo a campione di alcune classi indica che il file jar JUnit 4.8.2 è stato compilato con Java 5, o con la Java 6 compilatore con l'opzione -target impostata in modo che rende i file di classe java5-compatibili.

Una spiegazione molto più probabile è che hai accidentalmente compilato il test che volevi eseguire con un JDK Java 6. Cosa fa:

javap -verbose -classpath YOUR_TOP_DIRECTORY com.yourname.YourTest 

dire in cima alla sua uscita per "versione principale"? Se si dice 50, il problema è che hai compilato la tua classe di test solo per java 6. È necessario utilizzare un compilatore JDK 5 o passare l'opzione -target 1.5 al compilatore.

+1

Il copprint era un'altra libreria che ho usato. –

5

Il file .jar corrente per JUnit 4.8.2 è stato compilato con/per Java 5 (il numero di versione della classe è 49.0).

Ricordo che una versione precedente era stata costruita accidentalmente con Java 6 (e senza l'opzione -target), ma era semplicemente un errore.

Problemi correlati