2009-12-01 4 views
0

가 발생합니다자바, ASM org.objectweb.asm.util.CheckClassAdapter 나는 다음과 같은 예외가 무엇입니까 지원되지 않는 MAJOR.MINOR 버전 0.0

java.lang.UnsupportedClassVersionError: net/sourceforge/barbecue/BarcodeException : **Unsupported major.minor version 0.0** 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:621) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:466) 
    at pl.wroc.pwr.judy2.master.TestClassLoader.loadClass(TestClassLoader.java:51) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252) 
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) 
    at java.lang.Class.getDeclaredConstructors0(Native Method) 
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) 
    at java.lang.Class.getConstructor0(Class.java:2699) 
    at java.lang.Class.getConstructor(Class.java:1657) 
    at junit.framework.TestSuite.getTestConstructor(TestSuite.java:83) 
    at junit.framework.TestSuite.<init>(TestSuite.java:131) 
    at org.junit.internal.runners.JUnit38ClassRunner.<init>(JUnit38ClassRunner.java:67) 
    at org.junit.internal.builders.JUnit3Builder.runnerForClass(JUnit3Builder.java:14) 
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) 
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29) 
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) 
    at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24) 
    at junit.framework.JUnit4TestAdapter.<init>(JUnit4TestAdapter.java:31) 
    at junit.framework.JUnit4TestAdapter.<init>(JUnit4TestAdapter.java:24) 
    at pl.wroc.pwr.judy2.util.JUnitTestRunner.runTest(JUnitTestRunner.java:26) 

소스 코드를 아래로 악기에 약간의 바이트 코드를 시도.

public byte[] instrument(byte[] bytecode) 
     { 

     ClassReader cr = new ClassReader(bytecode); 
     ClassWriter cw = new ClassWriter(cr, 0); 

     // create new class adapter 
     AbstractInstrumentClassAdapter ca = new InstrumentClassAdapterTracer(cw, tracer); 
     // System.out.println("----------------------------------- Daikon start"); 
     cr.accept(ca, 0); 

     ClassReader cr2 = new ClassReader(cw.toByteArray()); 
     ClassWriter cw2 = new ClassWriter(cr2, 0); 
     ClassAdapter checker = new CheckClassAdapter(cw); 
     AbstractInstrumentClassAdapter ca2 = new InstrumentClassAdapterInstrumenter(checker); 

     cr2.accept(checker, 0); 
     return cw2.toByteArray(); 
    } 

내가 내 InstrumentClassAdapterInstrumenter 구현이 될 수 있다고 생각 (정확히 말하자면, 나는 수정 된 바이트 코드를 실행하려고 할 때 나는이 예외를 얻을), 그래서 나는 그것을 밖으로 떠나 나는 순간에만 CheckClassAdapter을 사용하고 있습니다. 아무도 내가 뭘 잘못하고 있는지 볼 수 있니? 내가 여기에 몇 가지 질문을 한 것처럼

건배,

답변

0

LOL은, 마지막으로, 간단 입력 오류 것 같다

ClassWriter cw2 = new ClassWriter(cr2, 0); 
ClassAdapter checker = new CheckClassAdapter(cw2); 

하지

ClassWriter cw2 = new ClassWriter(cr2, 0); 
ClassAdapter checker = new CheckClassAdapter(cw); 
해야한다