2015-01-07 6 views
0

JUnit 테스트에서 JMockit을 사용하려고하지만 Eclipse에서 테스트를 실행하는 동안 UnsupportedClassVersionError가 발생합니다. 이것은 자바 1.5 프로젝트 내가 빌드 경로에 JDK 1.5.0.22이 있고 클래스 경로에서의 JUnit의 버전 내가 다음 JMockit 설치 지침에 가서 만든Java 1.5 프로젝트에서 Jmockit을 사용하는 동안 UnsupportedClassVersionError

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) 

(받는다는 저장소에서 다운로드) 4.11이다 변화;

  1. 대신 "일반"JRE의 JDK 설치에서 JRE를 사용하는 JVM
  2. 프로젝트에 대한 초기화 매개 변수로 jmockit.jar 전달 클래스 패스
  3. 에 junit.jar를하기 전에 jmockit.jar 되세요

Eclipse Project specific Java Compiler Settings

Run config for Project

나는 이것을 고치려고 많은 시간을 보냈다. (그러나 운은 없다. 이 문제에 대한 해결책이 있다면 알려주십시오. 내가 여기서 무엇을 놓치고 있니?

답변

2

사용중인 JMockit의 버전을 지정하지 않았습니다. 그러나 당신이로 실행하는 것처럼 나에게 보인다

as of JMockit 1.8
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. 

, 지난 4 월 발표했다.

Java 1.5는 5 년 이상 공개적으로 지원되지 않았으므로 BTW가 예상됩니다.

+0

감사합니다. @dcsohl. 귀하의 대답은 제가이 문제를 해결하는 데 도움이되었습니다. 나는 Jmockit 1.14를 사용하고 있었기 때문에 JDK 5를 JRE 6로 바꾸었다. JMockit과 함께 JUnit이 훌륭하게 작동한다. 하루 투쟁 후 큰 구호. Jmockit이 Java 1.5에서 작동하도록 해결 방법을 지정한 모든 기사를 처음부터 잘못된 방향으로 향한 것처럼 보였습니다.하지만 결코 그렇게하지 않았습니다. Java 1.5에서 지원되지 않는 JMockit 웹 페이지/readme/installation doc의 어느 곳에서나 지정 되었습니까? - 놓쳤습니까? – Karthik

+1

강조 표시되지 않았습니다. 나는 그것을 찾아야했다. 그것은 위에서 언급 한 변경 페이지에만 언급되어 있습니다 ("JMockit 1.8 현재"). – dcsohl