Javassist
जावासिस्ट (जावा प्रोग्रामिंग सहायक) एक जावा पुस्तकालय है जो एक अनुप्रयोग के जावा बाइटकोड में हेरफेर करने का एक साधन प्रदान करता है। इस अर्थ में जावासिस्ट संरचनात्मक प्रतिबिंब के लिए समर्थन प्रदान करता है, अर्थात। रन टाइम पर एक वर्ग के कार्यान्वयन को बदलने की क्षमता। बाइटकोड हेरफेर एक प्रदान किए गए वर्ग लोडर के माध्यम से लोड-समय पर किया जाता है। जावासिस्ट जावा प्रोग्रामों को रनटाइम पर एक नए वर्ग को परिभाषित करने और जे. वी. एम. द्वारा इसे लोड करने पर एक वर्ग फ़ाइल को संशोधित करने में सक्षम बनाता है। अन्य समान बाइटकोड संपादकों के विपरीत, जावासिस्ट एपीआई के दो स्तर प्रदान करता हैः स्रोत स्तर और बाइटकोड स्तर। स्रोत-स्तरीय एपीआई का उपयोग करके, प्रोग्रामर जावा बाइटकोड के विनिर्देशों के ज्ञान के बिना एक वर्ग फ़ाइल को संपादित कर सकते हैं; पूरे एपीआई को केवल जावा भाषा की शब्दावली के साथ डिज़ाइन किया गया है। प्रोग्रामर जावा स्रोत पाठ के रूप में सम्मिलित किए गए बाइटकोड को भी निर्दिष्ट कर सकते हैं; जावासिस्ट इसे उड़ते हुए संकलित करता है। दूसरी ओर, बाइटकोड-स्तरीय एपीआई उपयोगकर्ताओं को अन्य संपादकों की तरह सीधे एक वर्ग फ़ाइल को संपादित करने की अनुमति देता है। जावासिस्ट का उपयोग निम्नलिखित के लिए किया जा सकता हैः स्रोत कोड का उपयोग करके बाइटकोड को निर्दिष्ट करने के लिए-स्रोत पाठ का एक टुकड़ा ऑनलाइन संकलित कर सकते हैं (उदाहरण के लिए, केवल एक ही कथन) पहलू-उन्मुख प्रोग्रामिंग (एओपी) के लिए-एक वर्ग में नए तरीके पेश कर सकते हैं और कॉलर और कैली दोनों तरफ सलाह से पहले/बाद में/आसपास डाल सकते हैं।