जवाबों:
मेरे पास यह लेख जावा 5 और नीचे के लिए इसे स्थापित करने पर बुकमार्क है।
मूल रूप से इसके साथ चलाएं :
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
के लिए ऊपर जावा 5 और , इसके साथ चलाएँ:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=1044
जावा 5.0 से पहले, उपयोग -Xdebugऔर -Xrunjdwpतर्क। ये विकल्प अभी भी बाद के संस्करणों में काम करेंगे, लेकिन यह जेआईटी के बजाय व्याख्या किए गए मोड में चलेगा, जो धीमा होगा।
जावा 5.0 से, -agentlib:jdwpएकल विकल्प का उपयोग करना बेहतर है :
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044
-Xrunjdwpया agentlib:jdwpतर्क पर विकल्प हैं:
transport=dt_socket : जेवीएम से कनेक्ट करने के लिए जिस तरह से उपयोग किया जाता है (सॉकेट एक अच्छा विकल्प है, इसका उपयोग दूर के कंप्यूटर को डीबग करने के लिए किया जा सकता है)address=8000 : टीसीपी / आईपी पोर्ट उजागर, डिबगर से कनेक्ट करने के लिए, suspend=y : यदि 'y', JVM को तब तक प्रतीक्षा करने के लिए कहें जब तक डिबगर निष्पादन शुरू करने के लिए संलग्न नहीं हो जाता है, अन्यथा (यदि 'n'), तुरंत निष्पादन शुरू करता है।Xrunjdwpपदावनत (या हटा दिया?) क्यों हम चुनेंगे agentlib:jdwpइस पर?
-Xdebug -Xrunjdwpमावेन परियोजनाओं को डीबगिंग करते समय नेटबीन्स का उपयोग किया जाता है, और वे ऐसे दौड़ते हैं जैसे वे JITed हैं।
चूंकि Java 9.0 JDWP डिफ़ॉल्ट रूप से केवल स्थानीय कनेक्शन का समर्थन करता है। http://www.oracle.com/technetwork/java/javase/9-notes-3745703.html#JDK-8041435
दूरस्थ डिबगिंग के लिए किसी को *:पता के साथ कार्यक्रम चलाना चाहिए :
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000
जावा 1.5 या अधिक के लिए:
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
जावा 1.4 के लिए:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
जावा 1.3 के लिए:
java -Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
यहाँ एक साधारण प्रोग्राम से आउटपुट है:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044 HelloWhirled
Listening for transport dt_socket at address: 1044
Hello whirled
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8001,suspend=y -jar target/cxf-boot-simple-0.0.1-SNAPSHOT.jar
address उस पोर्ट को निर्दिष्ट करता है जिस पर वह डिबग करने की अनुमति देगा
** मावेन के साथ डिबग स्प्रिंग बूट ऐप:
mvn spring-boot:run -Drun.jvmArguments=**"-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8001"
यहां सबसे आसान उपाय है।
यदि आप मावेन का उपयोग कर रहे हैं तो बहुत सारे पर्यावरण विशेष कॉन्फ़िगरेशन की आवश्यकता है। इसलिए, यदि आप मावेन से अपना कार्यक्रम शुरू करते हैं, तो mvnDebugइसके बजाय केवल कमांड चलाएं mvn, यह आपके ऐप को दूरस्थ डिबगिंग कॉन्फ़िगर करने के साथ शुरू करने का ध्यान रखेगा। अब आप केवल पोर्ट 8000 पर डिबगर संलग्न कर सकते हैं।
यह आपके लिए पर्यावरण की सभी समस्याओं का ध्यान रखेगा।
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=PORT_NUMBER
यहां हम सिर्फ एक सॉकेट अटैचिंग कनेक्टर का उपयोग करते हैं, जो कि डिफ़ॉल्ट रूप से सक्षम है जब dt_socket ट्रांसपोर्ट कॉन्फ़िगर किया गया है और VM सर्वर डिबगिंग मोड में चल रहा है।
अधिक जानकारी के लिए यू का उल्लेख कर सकते हैं: https://stackify.com/java-remote-debugging/
*:1044किसी भी कंप्यूटर से दूरस्थ डिबगिंग को सक्षम करने के लिए