2009-06-21 18 views
8

मैं इस तरह स्टैक ट्रेस हो रही है:GeneratedMethodAccessor1,2, आदि क्या हैं और वे क्यों नहीं मिल सकते हैं?

java.lang.NoClassDefFoundError: sun/reflect/GeneratedMethodAccessor1 
    at sun.reflect.GeneratedMethodAccessor1.<clinit>(Unknown Source) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
    at java.lang.Class.newInstance0(Class.java:355) 
    at java.lang.Class.newInstance(Class.java:308) 
    at sun.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:381) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at sun.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:377) 
    at sun.reflect.MethodAccessorGenerator.generateMethod(MethodAccessorGenerator.java:59) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:28) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at edu.tufts.cs.testsim.LogicalProcess.dispatchMessage(LogicalProcess.java:214) 
    at edu.tufts.cs.testsim.LogicalProcess.processForward(LogicalProcess.java:287) 
    at edu.tufts.cs.testsim.LogicalProcess.doOperation(LogicalProcess.java:423) 
    at edu.tufts.cs.testsim.LogicalProcess.run(LogicalProcess.java:434) 
    at java.lang.Thread.run(Thread.java:637) 
Caused by: java.lang.ClassNotFoundException: sun.reflect.GeneratedMethodAccessor1 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:316) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:288) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251) 
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374) 
    ... 19 more 

क्या GeneratedMethodAccessor1, GeneratedMethodAccessor2, GeneratedMethodAccessorN और क्या कारण हो सकता है उन्हें नहीं पाया जा सकता है कर रहे हैं? मैं रन टाइम पर कुछ बाइट कोड रीराइटिंग कर रहा हूं, लेकिन क्लास लोड होने से पहले ही, और प्रतिबिंब के माध्यम से पहले कई कॉल ठीक काम करते हैं। मुझे आश्चर्य है कि यह हो रहा है कि जेआईटी कंपाइलर मेरे कोड को पकड़ने के बाद हो रहा है, लेकिन मुझे यह भी पता नहीं है कि इसे डिबग करना कैसे शुरू करें।

उत्तर

7

GeneratedMethodAccessor### कॉल विधियों और कन्स्ट्रक्टरों के प्रतिबिंब कार्यान्वयन द्वारा रनटाइम पर उत्पन्न कक्षाएं हैं। यह वास्तविक विधि या कन्स्ट्रक्टर को Method या Constructor के उदाहरणों से बाइटकोड पुल बनाता है। अधिक जानकारी स्रोत कोड में उपलब्ध है।

Deserialisation कुछ व्युत्पन्न गैर-Serializable कन्स्ट्रक्टर का आह्वान करने के लिए कुछ समान तंत्र साझा करता है।

संबंधित मुद्दे

 संबंधित मुद्दे