2012-03-14 4 views
6

द्वारा लोड की गई कक्षाएं मैं मूल जेडीके 5 कक्षा की विधि पर "सम्मिलित करें" जोड़ना चाहता हूं। किसी कारण से यह काम नहीं कर रहा है। यहाँ कोड का एक उदाहरण है:जावसवादी जावा कोर कक्षाओं के साथ उपकरण के लिए संभव है? बूटस्ट्रैप क्लासलोडर

ClassPool pool = ClassPool.getDefault(); 
CtClass ctClass = pool.get("com.sun.org.apache.xerces.internal.impl.xs.XSMessageFormatter"); 
CtMethod ctMethod = ctClass.getDeclaredMethods()[0]; 
ctMethod.insertBefore("System.out.println(\"WORKED\");"); 
ctClass.toClass(); 

com.sun.org.apache.xerces.internal.impl.xs.XSMessageFormatter JDK के साथ आता है, यह rt.jar अंदर क्या है। ऊपर स्निपेट के बाद, मैं कुछ कोड चलाता हूं जो XSMessageFormatter क्लास को चलाने के लिए मजबूर करता है, लेकिन मेरा डाला गया कोड कभी नहीं चलता है। मैं इसे केवल अपने वर्गों पर काम करने के लिए प्राप्त कर सकता हूं। यह कोड एक साधारण स्टैंडअलोन ऐप के रूप में चल रहा है।

कोई विचार?

उत्तर

1

जावा कोर कक्षाओं को संशोधित करना बुरा विचार है। जावा इंस्ट्रुमेंटेशन एपीआई (जावा 1.5 के बाद से) का उपयोग करने का सही तरीका।

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