在Java 1.5项目中使用Jmockit时出现UnsupportedClassVersionError

时间:2015-01-07 15:17:00

标签: java eclipse junit4 jmockit java-5

我正在尝试在JUnit测试中使用JMockit,但是在从Eclipse运行测试时我得到了UnsupportedClassVersionError。这是一个Java 1.5项目,我在构建路径中有JDK 1.5.0.22,类路径中的JUnit版本是4.11(从maven存储库下载)

java.lang.UnsupportedClassVersionError: Bad version number in .class file
   at java.lang.ClassLoader.defineClass1(Native Method)
   at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
   at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
   at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
   at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
   at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
   at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:133)

我完成了JMockit安装说明并进行了以下更改;

  1. 在类路径中的Junit.jar之前有jmockit.jar
  2. 将jmockit.jar作为初始化参数传递给JVM
  3. Project使用JDK安装中的JRE而不是" plain" JRE
  4. Eclipse Project specific Java Compiler Settings

    Run config for Project

    我花了很多时间试图解决这个问题:(但是没有运气。如果你有解决方案,请告诉我?我在这里缺少什么?

1 个答案:

答案 0 :(得分:2)

您尚未指定所使用的JMockit版本;但是在我看来,你似乎遇到了这个问题:

From this version on, JMockit requires Java 6 or newer when running tests;
JRE 1.5 is no longer supported. Note that this only applies to the JRE/JDK
used for test  execution; class files compiled  for older versions of Java
are still supported.

那是去年四月发布的as of JMockit 1.8

这是BTW,因为Java 1.5在五年内还没有得到公众的支持。