【问题标题】:What java version is needed for JUnit 4.8JUnit 4.8 需要什么 java 版本
【发布时间】:2011-02-13 19:54:27
【问题描述】:

我正在尝试使用 1.5 JRE 运行 JUnit 测试,但收到错误消息:

java.lang.UnsupportedClassVersionError: .class 文件中的错误版本号

当我切换到 JRE 1.6(实际上是一个 JDK,但这不重要,对吗?)一切正常。

所以问题是:

  • 当前的 JUnit 版本真的需要 Java 6 吗?
  • 适用于 Java 5 的最新 JUnit 版本是什么?

【问题讨论】:

    标签: java junit version


    【解决方案1】:

    对一些类的抽查表明,JUnit 4.8.2 jar 文件是使用 java 5 编译的,或者是使用带有 -target 选项集的 java 6 编译器编译的,因此它可以生成与 java5 兼容的类文件。

    更可能的解释是,您不小心编译了要使用 Java 6 JDK 运行的测试。做什么:

    javap -verbose -classpath YOUR_TOP_DIRECTORY com.yourname.YourTest
    

    在其输出的顶部说“主要版本”?如果它说50,那么问题是你只为java 6 编译了你的测试类。您需要使用 JDK 5 编译器或将选项 -target 1.5 传递给您的编译器。

    【讨论】:

    • 罪魁祸首是我使用的另一个库。
    【解决方案2】:

    JUnit 4.8.2 的当前 .jar 文件是使用 Java 5 编译的(类版本号为 49.0)。

    我记得一个较早的版本意外地是用 Java 6 构建的(并且没有 -target 开关),但这只是一个错误。

    【讨论】:

      【解决方案3】:

      Junit 的 pom.xml 说 jdk 1.5。 http://github.com/KentBeck/junit/blob/master/pom.xml

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-03
        • 2018-09-08
        • 2017-02-12
        • 2023-03-30
        相关资源
        最近更新 更多