উত্তর:
আমি এই নিবন্ধটি জাভা 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 কে মৃত্যুদন্ড কার্যকর করার জন্য ডিবাগার সংযুক্ত না হওয়া পর্যন্ত অপেক্ষা করতে বলুন, অন্যথায় (যদি 'এন'), এখনই কার্যকর করা শুরু করে।Xrunjdwpহয়েছে (বা সরানো হয়েছে?) কেন আমরা agentlib:jdwpএটি তুলব ?
-Xdebug -Xrunjdwpমাভেন প্রকল্পগুলি ডিবাগ করার সময় নেটবিনগুলি ব্যবহার করে এবং তারা জেআইটিডের মতো চলে।
জাভা 9.0 যেহেতু জেডিডাব্লুপি কেবলমাত্র স্থানীয় সংযোগগুলি ডিফল্টরূপে সমর্থন করে। 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
এখানে আমরা কেবল একটি সকেট সংযুক্তকারী সংযোগকারী ব্যবহার করি, যা ডিটি_সকেট পরিবহনটি কনফিগার করা থাকে এবং ভিএম সার্ভার ডিবাগিং মোডে চলমান অবস্থায় ডিফল্টরূপে সক্ষম হয়।
আরও তথ্যের জন্য আপনি এইগুলি দেখতে পারেন: https://stackify.com/java-remote-debugging/
*:1044কোনও কম্পিউটার থেকে রিমোট ডিবাগিং সক্ষম করতে পছন্দ করতে চান