[Java] एक जावा अनुप्रयोग रिमोट डीबगिंग


Answers

जेडीके 1.3 या इससे पहले के लिए:

-Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=6006

जेडीके 1.4 के लिए

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=6006

नए जेडीके के लिए:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=6006

कृपया अपनी जरूरतों के आधार पर पोर्ट नंबर बदलें।

जावा टेक्नोट्स से

5.0 से आगे -agentlib: jdwp विकल्प का उपयोग जेडीडब्ल्यूपी एजेंट को विकल्पों को लोड और निर्दिष्ट करने के लिए किया जाता है। 5.0 से पहले रिलीज के लिए, -Xdebug और -Xrunjdwp विकल्पों का उपयोग किया जाता है (5.0 कार्यान्वयन -Xdebug और -Xrunjdwp विकल्पों का भी समर्थन करता है लेकिन नया-गैन्टलिब: jdwp विकल्प बेहतर है क्योंकि 5.0 में जेडीडब्लूपी एजेंट जेवीएम टीआई इंटरफ़ेस का उपयोग करता है पुराने JVMDI इंटरफ़ेस की बजाय वीएम)

JVM टूल इंटरफ़ेस दस्तावेज़ से, नोट करने के लिए एक और बात:

जेवीएम टीआई को जेडीके 5.0 में पेश किया गया था। जेवीएम टीआई जावा वर्चुअल मशीन प्रोफाइलर इंटरफेस (जेवीएमपीआई) और जावा वर्चुअल मशीन डीबग इंटरफेस (जेवीएमडीआई) को प्रतिस्थापित करता है, जो जेडीके 6 के रूप में प्रदान नहीं किया जाता है।

Question

मेरे पास लिनक्स मशीन पर एक जावा एप्लिकेशन चल रहा है। मैं निम्नलिखित का उपयोग कर जावा एप्लिकेशन चलाता हूं:

java myapp -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000, suspend=n

मैंने इस लिनक्स मशीन पर टीसीपी के लिए बंदरगाह 4000 खोला है। मैं विंडोज एक्सपी मशीन से ग्रहण का उपयोग करता हूं और इस एप्लिकेशन से कनेक्ट करने का प्रयास करता हूं। मैंने खिड़कियों में बंदरगाह भी खोला है।

दोनों मशीनें लैन पर हैं लेकिन मैं डीबगर को जावा एप्लिकेशन से कनेक्ट नहीं कर सकता। मैं क्या गलत कर रहा हूं?




रिमोट डीबगिंग के लिए आपको एक्लिप्स डीबगर सेट करना चाहिए:

ग्रहण सेटिंग्स:

1. रन बटन पर क्लिक करें
2. डीबग कॉन्फ़िगरेशन का चयन करें
3. "दूरस्थ जावा एप्लिकेशन" का चयन करें
4. नई विन्यास

  • नाम: गेटवेपोर्टलप्रोजेक्ट
  • परियोजना: गेटवेपोर्ट-पोर्टल
  • कनेक्शन का प्रकार: सॉकेट संलग्न करें
  • कनेक्शन गुण: i) लोकलहोस्ट ii) 8787

जेबॉस के लिए:

1. अपने vm में /path/toJboss/jboss-eap-6.1/bin/standalone.conf को निम्नानुसार बदलें: # को हटाकर निम्न पंक्ति को असम्बद्ध करें:

JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n"

टॉमकैट के लिए:

Catalina.bat फ़ाइल में:

चरण 1:

CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

चरण 2:

JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"

चरण 3: कमांड प्रॉम्प्ट से नीचे टॉमकैट चलाएं:

catalina.sh jpda start

फिर आपको उन जावा कक्षाओं में ब्रेकपॉइंट्स सेट करने की आवश्यकता है जिन्हें आप डीबग करना चाहते हैं।






Links