लक्षण पूरी तरह से मामले का वर्णन करता है जब पाया गया वर्ग में संबद्ध (या असाइन किया गया) स्रोत नहीं है।
- आप JDK वर्गों के लिए स्रोतों को वरीयताएँ> जावा> स्थापित JRE में जोड़ सकते हैं । यदि JRE (JDK नहीं) का उपयोग डिफ़ॉल्ट JRE के रूप में किया जाता है, तो आपके JDK वर्गों में संलग्न स्रोत नहीं होंगे। ध्यान दें कि, सभी JDK वर्गों ने स्रोत प्रदान नहीं किए हैं, उनमें से कुछ केवल बाइनरी रूप में वितरित किए गए हैं।
- प्रोजेक्ट के निर्माण पथ से कक्षाएं, मैन्युअल रूप से जोड़े जाने के लिए आवश्यक है कि आप मैन्युअल रूप से संबंधित स्रोत को संलग्न करें। स्रोत एक ज़िप या जार फ़ाइल में, कार्यक्षेत्र में या फ़ाइल सिस्टम में रह सकता है। ग्रहण ज़िप को स्कैन करेगा, इसलिए आपके स्रोतों को उदाहरण के लिए, संग्रह फ़ाइल की जड़ में नहीं होना चाहिए।
- कक्षाएं, अन्य प्लगइन्स (मावेन, पीडीई, आदि) से आने वाली निर्भरता से। इस मामले में, यह प्लगइन पर निर्भर है कि स्रोत कैसे प्रदान किया जाएगा।
- पीडीई को आवश्यकता होगी कि प्रत्येक प्लगइन में संबंधित XXX.source बंडल हो, जिसमें प्लगइन का स्रोत हो। अधिक जानकारी यहाँ और यहाँ मिल सकती है ।
- यदि वे उपलब्ध हैं तो m2eclipse मावेन निर्भरता के लिए स्रोत और javadocs प्राप्त कर सकते हैं। इस सुविधा को m2eclipse वरीयताओं को सक्षम किया जाना चाहिए (विकल्प को " डाउनलोड स्रोत और javadocs " जैसे कुछ नाम दिया गया था ।
- अन्य प्लगइन्स के लिए, आपको उनके प्रलेखन से परामर्श करना होगा
- कक्षाएं, जो आपके प्रोजेक्ट से भरी हुई हैं, प्रोजेक्ट से स्रोतों के साथ स्वचालित रूप से मेल खाती हैं।
लेकिन क्या होगा यदि ग्रहण अभी भी सुझाव देता है कि आप स्रोत संलग्न करते हैं, भले ही मैंने अपनी कक्षाएं और उनके स्रोत सही ढंग से निर्धारित किए हों:
यह लगभग हमेशा इसका मतलब है कि ग्रहण आपकी अपेक्षा से अलग स्थान से वर्ग को खोज रहा है। यह देखने के लिए अपने स्रोत लुकअप पथ का निरीक्षण करें कि यह गलत वर्ग कहाँ हो सकता है। अपने निष्कर्षों के अनुसार पथ को अपडेट करें।
ब्रेकपॉइंट हिट होने पर ग्रहण को कुछ भी नहीं मिलता है:
ऐसा तब होता है, जब आप स्रोत लुकअप पथ में वर्ग नहीं होते हैं, जो वर्तमान में रनटाइम में लोड होता है। यहां तक कि अगर वर्ग कार्यक्षेत्र में है, तो यह लॉन्च कॉन्फ़िगरेशन के लिए अदृश्य हो सकता है, क्योंकि ग्रहण स्रोत लुकअप पथ का सख्ती से पालन करता है और केवल प्रोजेक्ट की निर्भरता को संलग्न करता है, जो वर्तमान में डीबग किया गया है।
एक अपवाद पीडीई में डिबगिंग बंडल है । इस स्थिति में, क्योंकि रनटाइम कई परियोजनाओं से बना है, जिसमें एक दूसरे पर निर्भरता की घोषणा नहीं करनी है, एक्लिप्स स्वचालित रूप से कार्यक्षेत्र में वर्ग को ढूंढ लेगा, भले ही वह स्रोत लुकअप पथ में उपलब्ध न हो।
जब मैं एक ब्रेकपॉइंट मारता हूं तो मैं चर नहीं देख सकता हूं या यह सिर्फ स्रोत को खोलता है, लेकिन ब्रेकपॉइंट लाइन का चयन नहीं करता है:
इसका मतलब है कि रनटाइम में, जेवीएम या स्वयं कक्षाओं में आवश्यक डिबग जानकारी नहीं है। हर बार कक्षाएं संकलित की जाती हैं, डिबग जानकारी संलग्न की जा सकती है। कक्षाओं के भंडारण स्थान को कम करने के लिए, कभी-कभी इस जानकारी को छोड़ दिया जाता है, जो इस तरह के कोड को डिबगिंग बनाता है। आपका एकमात्र मौका डिबग सक्षम के साथ प्रयास करना और पुन: प्रयास करना है।
ग्रहण स्रोत दर्शक उन रेखाओं से अलग दिखाता है जो वास्तव में निष्पादित होती हैं:
यह कभी-कभी दिखा सकता है कि खाली जगह को भी निष्पादित किया गया है। इसका मतलब है कि आपके स्रोत कक्षाओं के आपके रनटाइम संस्करण से मेल नहीं खाते हैं। यहां तक कि अगर आपको लगता है कि यह संभव नहीं है, तो यह है, इसलिए सुनिश्चित करें कि आपने सही स्रोतों को सेटअप किया है। या आपका रनटाइम आपके नवीनतम परिवर्तनों से मेल खाता है, इस पर निर्भर करता है कि आप क्या करने की कोशिश कर रहे हैं।