2013-01-19 15 views
15

मुझे हाल ही में एक कार्य था जहां मुझे कार्यक्षमता को बदलने के लिए गर्म कोड का उपयोग करना पड़ा। तो मैंने इसे टूल इंजेक्शन एपीआई का उपयोग टूल.जर में उपलब्ध किया।क्या ग्रहण हॉट कोड के लिए जावा इंस्ट्रूमेंटेशन एपीआई का उपयोग करता है

ग्रहण नई कक्षा फ़ाइलों की गर्म प्रतिस्थापन के लिए कुछ अलग तर्क का उपयोग करता है या उसी जावा एपीआई का उपयोग करता है? मैं कुछ स्थानों से पढ़ने के लिए कोशिश की, लेकिन स्पष्ट नहीं था:

ग्रहण जावा डिबगर एक और JVM

को डिबगिंग चैनल पर नया वर्ग फ़ाइलों को स्थानांतरित करता Eclipse Hot Code Replace में इस लाइन स्पष्ट नहीं था।

+0

आपका लिंक टूटा हुआ है, इसे आजमाएं - http://wiki.eclipse.org/FAQ_What_is_hot_code_replace%3F। – Perception

+0

@ धारणा मैंने इसे बदल दिया nw यह काम करता है –

+0

ग्रहण ओपन सोर्स है - आप * क्यों नहीं देखते हैं? आप इसे यहां देखने के तरीके पर एक प्रमुख शुरुआत प्राप्त कर सकते हैं: http://www.vogella.com/articles/EclipseCodeAccess/article.html। यह भी: यदि आपका समाधान "काम करता है", तो आप * देखभाल * ग्रहण कैसे करते हैं? – paulsm4

उत्तर

7

मेरा मानना ​​है कि ग्रहण एक ही तर्क का उपयोग करता है, वे दोनों JVMTI नामक देशी इंटरफ़ेस पर निर्भर हैं। JVMTI राज्य का निरीक्षण करने के लिए उपकरण प्रदान करता है, और जावा वर्चुअल मशीन में चल रहे अनुप्रयोगों के निष्पादन को नियंत्रित करने के लिए।

जावा इंस्ट्रुमेंटेशन कार्यान्वयन में JVMTI का एजेंट है। एजेंट वीएम से बात करने और कुछ कार्यों को करने के लिए। इसमें redefineClasses विधि भी है।

ग्रहण डीबगर या अन्य उपकरण जेपीडीए (जावा प्लेटफार्म डीबगर आर्किटेक्चर) का उपयोग करते हैं, और जेपीडीए में मुख्य रूप से तीन भाग होते हैं (JVMTI, JDWP, JDI)। जेवीएमटीआई डीबगेज के रूप में कार्य करता है, जेडीआई डीबगर के रूप में कार्य करता है, और जेडीडब्लूपी उनके बीच संचार चैनल के रूप में कार्य करता है।

अंत में, वे सभी JVMTI से बात करते हैं, और यह एक ही तर्क का उपयोग करता है।

+0

एक गरीब प्रश्न का उत्कृष्ट जवाब :) – paulsm4

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