Javassist
જાવાસિસ્ટ (જાવા પ્રોગ્રામિંગ સહાયક) એ જાવા લાઇબ્રેરી છે જે એપ્લિકેશનના જાવા બાઈટકોડને ચાલાકીથી ચલાવવા માટેનું સાધન પૂરું પાડે છે. આ અર્થમાં જાવાસિસ્ટ માળખાકીય પ્રતિબિંબ માટે આધાર પૂરો પાડે છે, એટલે કે. રન ટાઇમ પર વર્ગના અમલીકરણને બદલવાની ક્ષમતા. પ્રદાન કરેલા વર્ગ લોડર દ્વારા લોડ-ટાઇમ પર બાઈટકોડ હેરફેર કરવામાં આવે છે. જાવાસિસ્ટ જાવા પ્રોગ્રામ્સને રનટાઇમ પર નવા વર્ગને વ્યાખ્યાયિત કરવા અને જ્યારે JVM તેને લોડ કરે ત્યારે વર્ગ ફાઇલમાં ફેરફાર કરવા માટે સક્ષમ કરે છે. અન્ય સમાન બાઈટકોડ સંપાદકોથી વિપરીત, જાવાસિસ્ટ એપીઆઈના બે સ્તર પ્રદાન કરે છેઃ સ્રોત સ્તર અને બાઈટકોડ સ્તર. સ્રોત-સ્તરના API નો ઉપયોગ કરીને, પ્રોગ્રામરો જાવા બાઈટકોડની વિશિષ્ટતાઓની જાણકારી વિના વર્ગ ફાઇલને સંપાદિત કરી શકે છે; સમગ્ર API માત્ર જાવા ભાષાના શબ્દભંડોળ સાથે રચાયેલ છે. પ્રોગ્રામરો જાવા સ્રોત લખાણના સ્વરૂપમાં શામેલ કરેલા બાઈટકોડનો પણ ઉલ્લેખ કરી શકે છે; જાવાસિસ્ટ તેને ફ્લાય પર સંકલિત કરે છે. બીજી બાજુ, બાઈટકોડ-સ્તર API વપરાશકર્તાઓને અન્ય સંપાદકોની જેમ વર્ગ ફાઇલને સીધી સંપાદિત કરવાની મંજૂરી આપે છે. જાવાસિસ્ટનો ઉપયોગ નીચેના માટે થઈ શકે છેઃ સોર્સ કોડનો ઉપયોગ કરીને બાઈટકોડ સ્પષ્ટ કરવા માટે-સોર્સ ટેક્સ્ટનો એક ટુકડો ઓનલાઈન સંકલિત કરી શકાય છે (દા. ત., માત્ર એક જ નિવેદન) એસ્પેક્ટ-ઓરિએન્ટેડ પ્રોગ્રામિંગ (એઓપી) માટે-વર્ગમાં નવી પદ્ધતિઓ રજૂ કરી શકે છે અને કોલર અને કૅલી બંને બાજુએ પહેલાં/પછી/આસપાસ સલાહ દાખલ કરી શકે છે.