2010-04-29 75 views
7

我試圖運行具有1.5 JRE JUnit測試,但得到的錯誤信息:什麼Java版本4.8

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

當我切換到JRE 1.6(實際上是JDK但不該」沒關係,對吧?)萬物都很好。

所以問題是:

  • 我們真的需要Java 6的當前JUnit版本?
  • 什麼是最新的JUnit版本,適用於Java 5?

回答

6

幾類的抽查顯示,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傳遞給編譯器。

+1

culprint是我使用的另一個庫。 – 2010-05-28 18:08:52

5

JUnit 4.8.2的當前.jar文件是用/ for Java 5編譯的(類版本號是49.0)。

我記得一個早期的版本不小心正在用Java 6構建(沒有-target開關),但那只是一個錯誤。