2011-03-21 30 views
5

डीबग करने के लिए एप्लेट से अटैच करने का प्रयास करते समय सिस्टम निर्दिष्ट फ़ाइल नहीं ढूंढ सकता है, मैं netbeans 6.1 का उपयोग कर रहा हूं।'shmemBase_attach विफल हो रहा है:

मैं अपने जावा रन टाइम सेटिंग में निम्नलिखित है:

-agentlib: jdwp = परिवहन = dt_shmem, पता = jdbconn, सर्वर = y, निलंबित = n

और निम्न NetBeans में संलग्न संवाद में:

डीबगर: JPDA डीबगर

कनेक्टर: साझा मेमोरी संलग्न करें (संलग्न dt_shmem

नाम: अन्य VMs को साझा स्मृति)

परिवहन द्वारा तों jdbconn

मैं NetBeans विकी पर FaqDebuggingAppletRemotely पेज से ऊपर सेटिंग्स मिला है।

एप्लेट एक एएसपीएक्स पेज में है (एप्लेट, whcih हस्ताक्षरित है, क्लाइंट ब्राउज़र के माध्यम से एक विरासत मंच पर संचार करने की एक विधि है, मैं वास्तव में एक सी # डेवलपर हूं)। मैं सुरक्षा चेतावनी प्रदर्शित करने के लिए जो मुझे एप्लेट को संलग्न करने के लिए एक मौका देता पाने में कामयाब रहे है, लेकिन जब भी मैं संलग्न करने की कोशिश मैं देख रहा हूँ:

jdbconn को अटैच किया जा रहा

shmemBase_attach विफल रहा है: सिस्टम नहीं कर सकते फ़ाइल को

नेटबीन में आउटपुट विंडो में निर्दिष्ट करें।

किसी भी मदद से कृतज्ञता से प्राप्त!

उत्तर

0

जब आप साझा मेमोरी विकल्प (transport = dt_shmem) से डीबग करते हैं, तो आप डीबगर और जेवीएम के बीच संवाद करने के लिए विंडोज आंतरिक साझा मेमोरी ऑब्जेक्ट्स का उपयोग कर रहे हैं।

इसका मतलब है कि यदि आप हैं:

ए। आपके जेवीएम, या

बी के समान भौतिक मशीन से डिबगिंग नहीं। विंडोज ओएस पर काम नहीं कर रहा है,

आप इस मोड में डीबग नहीं कर सकते हैं।

मुझे यकीन नहीं है कि क्या होगा यदि आप एक लिनक्स स्टेशन पर वीएम पर एक विंडो चलाते हैं ... शायद काम हो और शायद नहीं।

यदि उपर्युक्त दोनों ठीक हैं, तो समस्या को जानने के लिए इसकी गहरी जांच की आवश्यकता होगी, लेकिन इस बीच, आप एक सादे सॉकेट से संलग्न कर सकते हैं।

जावा चलाने के समय मानकों में निर्दिष्ट करें:

-Xdebug -Xrunjdwp: परिवहन = dt_socket, सर्वर = y, पता = 8000, को निलंबित = y

यह आपके JVM बताता है डिबग मोड में चलाने के लिए, jdwp लाइब्रेरी लोड करें, बंदरगाह 8000 में संलग्न करने के लिए कनेक्शन की प्रतीक्षा करें, और जब तक कोई कनेक्शन नहीं आ जाता है तब तक निष्पादन को निलंबित कर दें।

आपके आईडीई में तदनुसार रिमोट डीबगर सेट करें। मुझे नेटबीन्स नहीं पता, लेकिन यह कनेक्टर = सॉकेट कनेक्टर, पता = 8000 जैसा कुछ होगा। जब आप अपना वेब पेज शुरू करते हैं, तो एप्लेट कनेक्ट होने तक लोडिंग को स्थिर कर देगा, और निश्चित रूप से आप तब तक कनेक्ट नहीं हो सकते जब तक कि यह सुनवाई चरण तक नहीं पहुंच जाता।

शुभकामनाएं!

-1

मैं कुछ भी शर्त लगाता हूं (लगभग कुछ भी ... शायद कम से कम कुछ डॉलर, या एक कुकी) कि आपके एप्लेट्स पर चल रहे जेवीएम इंस्टॉलेशन आपके सिस्टम पर स्थापित डिफ़ॉल्ट जेवीएम इंस्टॉलेशन जैसा नहीं है।

1) बंद उन सभी एप्लिकेशन को JVM (विशेष रूप से ब्राउज़र) का उपयोग करें:

JVM स्थापना है कि आपके ब्राउज़र और एप्लेट विंडोज 7 में उपयोग कर रहे हैं पता करने के लिए।

2) विंडोज़ टास्क मैनेजर खोलें (CTRL + ALT + DELETE-> कार्य प्रबंधक), और प्रक्रिया टैब पर क्लिक करें।

3) सुनिश्चित करें कि कोई जावा * .exe प्रक्रियाएं चल रही नहीं हैं।

4) अपने ब्राउज़र को खोलें और एप्लेट पेज पर जाएं, और फिर से एप्लेट शुरू करें।

5) अब कार्य प्रबंधक-> प्रक्रिया टैब पर वापस जाएं और जावा * .exe की तलाश करें जो अब चल रहा है (यह संभवतः "java.exe * 32" होगा, जैसा कि वास्तव में होगा प्रक्रिया के नाम पर एक क्षुद्रग्रह। यदि आप उसे नहीं देखते हैं, तो बस जो भी चल रहा है उसका उपयोग करें)।

6) उस प्रक्रिया पर राइट क्लिक करें, और संदर्भ मेनू में "फ़ाइल खोलें" चुनें। यह आपको स्थापित JVM के "बिन" फ़ोल्डर स्थान पर ले जाना चाहिए कि आपका ब्राउज़र आपके एप्लेट चलाने के लिए उपयोग कर रहा है! क्या आप हैरान हैं कि यह वही नहीं है जैसा आपने सोचा था कि यह होगा?

linux या अन्य प्रणालियों पर काम ढूंढने के लिए:

मैं ही कभी विंडोज पर इस समस्या को मिला है, लेकिन यहाँ आप इसे कैसे किसी भी तरह करते हैं।

खुला एक खोल, और निम्न

ps -e | grep java 

टाइप और पीआईडी ​​(रों) का नोट बनाएँ।

अब आप जानते हैं कि जो JVM अपने एप्लेट उपयोग कर रहे हैं:

हम (के रूप में डिफ़ॉल्ट स्थापना हम पहले संशोधित करने का प्रयास के खिलाफ) है कि partivular स्थापना के लिए जावा कंसोल को खोलने की जरूरत है।

JVM स्थापना है कि आपके एप्लेट उपयोग कर रहे हैं कंसोल खोलें, और क्रम पैरामीटर सेट करने के लिए:

1) JVM स्थापना के बिन फ़ोल्डर में एक कमांड प्रॉम्प्ट (शेल या जो कुछ भी) खोलें। (विंडोज़ 7 में, एक्सप्लोरर से, आप बिन फ़ोल्डर पर राइट-क्लिक कर सकते हैं, और "ओपन कमांड प्रॉम्प्ट यहां" चुनें।

2) कंसोल खोलने के लिए निम्न आदेश चलाएँ:

javaws -viewer 

यह भी "जावा कैश व्यूअर" खिड़की है, जो हम की जरूरत नहीं है खोलने समाप्त होता है। उस विंडो को बंद करें, लेकिन "जावा कंट्रोल पैनल" विंडो खोलें।

3) अब आप जावा टैब पर जाकर देखने पर क्लिक करें और क्रम पैरामीटर को बदलने बस के रूप में आप था पहले:

-agentlib:jdwp=transport=dt_shmem,address=jdbconn,server=y,suspend=n 

4) "ठीक है" क्लिक करें और फिर क्लिक करें "लागू करें" आपके द्वारा किए गए सभी परिवर्तनों को लागू करने और सहेजने के लिए मुख्य जावा कंसोल विंडो में।

5) प्रतीक्षा करें! एक आखिरी चीज है जो मैं आपको सुझाव देता हूं;

javaws -uninstall 

सुनिश्चित करें और JVM स्थापना है कि आपके एप्लेट उपयोग कर रहे हैं बिन निर्देशिका में इस चलाने के लिए, के बाद से यह नहीं हो सकता है: सुनिश्चित करें कि आपके एप्लेट नए मानकों का प्रयोग करके नए सिरे से डाउनलोड करने के लिए जावा WebStart कैश को साफ एक ही बिन निर्देशिका जो आपके पथ (या पथ) प्रणाली पर्यावरण चर द्वारा इंगित की जाती है।

अब अपने ब्राउज़र से अपना एप्लेट शुरू करें, और अपने नेटबीन आईडीई के अंदर एक और साझा मेमोरी कनेक्शन बनाएं! सही स्रोत कोड में सेटअप ब्रेक पॉइंट्स जो आप डिबगिंग कर रहे हैं (NetBeans में "स्रोत" टैब), और अपने एप्लेट का उपयोग शुरू करें। अब आपको देखना चाहिए कि नेटबीन आपके ब्रेक पॉइंट्स पर टूट रहा है!

कम से कम, मुझे आशा है कि ...

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