का उपयोग कर जावा .class फ़ाइल में फ़ंक्शन इंजेक्ट करें मैंने हास्केल का उपयोग करके जावा बाइटकोड पार्सर लिखा है, और यह ठीक काम करता है। हालांकि अगले चरण में मुझे पूरी तरह से स्टंप किया गया है।हास्केल
एक विधि को क्रियान्वित करने से पहले "में प्रवेश [विधि यहाँ नाम]", और
":
मेरे हास्केल कार्यक्रम है, ताकि जब मार डाला, जावा प्रोग्राम प्रिंट .class फ़ाइल को संशोधित करने की जरूरत है बाहर निकलने के तरीके [विधि का नाम] "विधि को निष्पादित करने के बाद।
मुझे पता है कि हमें निरंतर पूल और विधि तालिका को System.out.println
पर कॉल के साथ जोड़ना होगा, लेकिन मुझे लगता है कि मुझे अभी भी कुछ याद आ रहा है।
- इस समस्या से संपर्क करने का सबसे अच्छा तरीका क्या है?
- आप कैसे जानते हैं कि
System.out.println
बाइटकोड में कैसे कॉल करें? - आप स्ट्रिंग को विधि के नाम से कैसे स्टोर करते हैं, जिसे बाद में
System.out.println
का तर्क कहा जाता है?
[VMSpec] (http://docs.oracle.com/javase/specs/jvms/se5.0/html/ClassFile.doc.html#80959) आपका मित्र है। :) – biziclop
बाइटकोड में नई कार्यक्षमता इंजेक्शन ??? मैं वास्तव में बहुत खुश हूं कि आपको – ControlAltDel
भयभीत होने वाली आवाजों में समस्याएं आ रही हैं, मुझे विश्वास नहीं है कि आपको जावा के बाहर इस समाधान के लिए जाना होगा - मुझे संदेह होगा कि कुछ प्रकार की प्रॉक्सी तकनीक काम करेगी। (उसने कहा, आपको इस तरह से ऐसा करने का प्रयास करने का मेरा सम्मान है।)) –