我試圖運行具有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?
我試圖運行具有1.5 JRE JUnit測試,但得到的錯誤信息:什麼Java版本4.8
java.lang.UnsupportedClassVersionError: Bad version number in .class file
當我切換到JRE 1.6(實際上是JDK但不該」沒關係,對吧?)萬物都很好。
所以問題是:
幾類的抽查顯示,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
傳遞給編譯器。
JUnit 4.8.2的當前.jar文件是用/ for Java 5編譯的(類版本號是49.0)。
我記得一個早期的版本不小心正在用Java 6構建(沒有-target開關),但那只是一個錯誤。
Junit的pom.xml說jdk 1.5。 http://github.com/KentBeck/junit/blob/master/pom.xml
culprint是我使用的另一個庫。 – 2010-05-28 18:08:52