ما هي GeneratedMethodAccessor1،2، وغيرها، والسبب قد لا يمكن العثور عليها؟

StackOverflow https://stackoverflow.com/questions/1024217

سؤال

وأنا الحصول على كومة يتتبع مثل هذا:

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 وما يمكن أن يسبب لهم لا يمكن العثور عليها؟ وأنا أفعل بعض رمز بايت إعادة كتابة في وقت التشغيل، ولكن فقط قبل أن يتم تحميل الطبقة، وأول عدة مكالمات هاتفية من خلال العمل غرامة التفكير. أنا أتساءل إذا كان هذا يحدث بعد يحصل على مترجم JIT على عقد من قانون بلدي، ولكن أنا حتى لا يكون لديك فكرة جيدة جدا لكيفية بدء التصحيح هذه.

هل كانت مفيدة؟

المحلول

وGeneratedMethodAccessor### هي الطبقات ولدت في وقت التشغيل عن طريق تنفيذ انعكاس للاتصال أساليب والصانعين. هذا النموذج جسر بايت كود من حالات Method أو Constructor إلى الطريقة الفعلية أو منشئ. يتوفر مزيد من المعلومات في شفرة المصدر.

وDeserialisation أيضا لا شيئا من هذا القبيل، وتقاسم بعض من نفس الآلية، لاستدعاء أكثر المستمدة منشئ غير Serializable.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top