Javassist
جاوا سسٹ (جاوا پروگرامنگ اسسٹنٹ) ایک جاوا لائبریری ہے جو کسی ایپلی کیشن کے جاوا بائٹ کوڈ کو جوڑنے کا ایک ذریعہ فراہم کرتی ہے۔ اس لحاظ سے جاواسسٹ ساختی عکاسی کے لیے مدد فراہم کرتا ہے، یعنی۔ رن ٹائم پر کلاس کے نفاذ کو تبدیل کرنے کی صلاحیت۔ بائٹ کوڈ میں ہیرا پھیری فراہم کردہ کلاس لوڈر کے ذریعے لوڈ کے وقت کی جاتی ہے۔ جاوا سسٹ جاوا پروگراموں کو رن ٹائم پر ایک نئی کلاس کی وضاحت کرنے اور جے وی ایم کے لوڈ ہونے پر کلاس فائل میں ترمیم کرنے کے قابل بناتا ہے۔ اسی طرح کے دوسرے بائٹ کوڈ ایڈیٹرز کے برعکس، جاوا سسٹ اے پی آئی کی دو سطحیں فراہم کرتا ہے: سورس لیول اور بائٹ کوڈ لیول۔ سورس لیول API کا استعمال کرتے ہوئے، پروگرامر جاوا بائٹ کوڈ کی خصوصیات کے علم کے بغیر کلاس فائل میں ترمیم کر سکتے ہیں۔ پورا API صرف جاوا زبان کے الفاظ کے ساتھ ڈیزائن کیا گیا ہے۔ پروگرامر جاوا سورس ٹیکسٹ کی شکل میں داخل کردہ بائٹ کوڈ کی وضاحت بھی کر سکتے ہیں ؛ جاوا سسٹ اسے فلائی پر مرتب کرتا ہے۔ دوسری طرف، بائٹ کوڈ سطح کا API صارفین کو دوسرے ایڈیٹرز کی طرح کلاس فائل میں براہ راست ترمیم کرنے کی اجازت دیتا ہے۔ استعمال جاوا سسٹ کو مندرجہ ذیل کے لیے استعمال کیا جا سکتا ہے: سورس کوڈ کا استعمال کرتے ہوئے بائٹ کوڈ کی وضاحت کے لیے-سورس ٹیکسٹ کا ایک ٹکڑا آن لائن مرتب کر سکتے ہیں (مثال کے طور پر، صرف ایک بیان) پہلو پر مبنی پروگرامنگ (اے او پی) کے لیے-کلاس میں نئے طریقے متعارف کر سکتے ہیں اور کالر اور کیلی دونوں اطراف میں مشورے سے پہلے/بعد/ارد گرد داخل کر سکتے ہیں۔ رن ٹائم پر عکاسی کے لیے-ایک میٹا آبجیکٹ استعمال کر سکتے ہیں جو بیس لیول آبجیکٹ پر میتھڈ کالز کو کنٹرول کرتا ہے۔ ریموٹ میتھڈ کی دعوت کے لیے-ویب سرور پر چلنے والے ریموٹ آبجیکٹ پر ایک طریقہ کال کر سکتا ہے، جاوا آر ایم آئی کا متبادل جس میں اسٹب کمپائلر کی ضرورت نہیں ہوتی جیسے آبجیکٹ ویب اے ایس ایم بائٹ کوڈ انجینئرنگ لائبریری کے حوالہ جات بیرونی لنک جاوا (پروگرامنگ زبان)