प्रोग्राम के चलने के दौरान जावा कोड को डिबग / चेंज कैसे करें?


15

मैंने सिर्फ एक वीडियो दिखाया जिसमें दिखाया गया है कि नॉट (मिनक्राफ्ट की प्रसिद्धि) कैसे डिबगिंग कर रही है और इसे चालू करते समय Minecraft बदल रहा है। वह गेम को रोक देता है, कोड में कुछ बदल देता है और फिर उस गेम को अनपोज कर देता है जहां प्रोग्राम को पुनरारंभ करने की आवश्यकता के बिना परिवर्तन तत्काल प्रभाव लेता है।

यह कैसे काम करता है? इसे प्राप्त करने के लिए किस तरह की तकनीक का उपयोग किया जाता है?


1
और इस प्रकार Notch की QA प्रक्रिया की सीमा है।
डेडएमजी

1
स्टैक ओवरफ्लो में एक पुराने क्यू एंड ए के अनुसार , यह JPDA फीचर के साथ किया जा सकता है जो "HotSwap" क्लास फाइल रिप्लेसमेंट
gnat

लोल, उस वीडियो के बाद भी यहां आए थे।
सिरो सेंटिल्ली 新疆 改造 i i ''

जवाबों:


4

जावा बॉक्स से बाहर हॉट-स्वैपिंग कर सकता है। यदि आप ग्रहण की तरह एक आईडीई का उपयोग करते हैं तो यह विधि-निकायों को बदलने के लिए काम करेगा। यदि आप अन्य कोड परिवर्तन लागू करना चाहते हैं, तो आप एक उपकरण का उपयोग करना चाहते हैं। JRebel एक ऐसा उत्पाद है जो अधिक मामलों का समर्थन करता है।

मैं उस उत्पाद के लिए मार्केटिंग नहीं करना चाहता, लेकिन मैं व्यक्तिगत रूप से कोई अन्य विकल्प नहीं जानता। JRebel वेबसाइट पर एक अच्छी सुविधा-तुलना है

उम्मीद है की वो मदद करदे।


+1 जेब्रेल ग्रहण जैसे आईडीई के बाहर "हॉट कोडिंग" के लिए बहुत अच्छा है।
जलयान

4

इसे हॉट कोड रिप्लेस कहा जाता है और IDE को डिबगिंग इंटरफ़ेस के माध्यम से लाइव रनिंग कोड बदलने की अनुमति देता है। यह जावा 1.4.1 के बाद से सन जेवीएम द्वारा समर्थित है

हालाँकि, जब तक आप (कमर्शियल) JRebel JVM एक्सटेंशन का उपयोग नहीं करते हैं, यह विधि निकायों के अंदर परिवर्तन तक सीमित है। यदि आप विधियों या वर्गों को जोड़ते / हटाते हैं, या हस्ताक्षर बदलते हैं, तो आपको JVM को पुनः आरंभ करना होगा।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.