Jawaban:
Saya memiliki artikel ini ditandai pada pengaturan ini untuk Java 5 dan di bawah.
Pada dasarnya jalankan dengan :
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
Untuk Java 5 dan di atasnya , jalankan dengan:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=1044
Sebelum Java 5.0, gunakan -Xdebugdan -Xrunjdwpargumen. Opsi ini masih akan berfungsi di versi yang lebih baru, tetapi akan berjalan dalam mode yang diartikan sebagai ganti JIT, yang akan lebih lambat.
Dari Java 5.0, lebih baik menggunakan -agentlib:jdwpopsi tunggal:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044
Opsi -Xrunjdwpatau agentlib:jdwpargumen adalah:
transport=dt_socket : berarti cara yang digunakan untuk terhubung ke JVM (soket adalah pilihan yang baik, dapat digunakan untuk men-debug komputer yang jauh)address=8000 : Port TCP / IP terbuka, untuk terhubung dari debugger, suspend=y : jika 'y', beri tahu JVM untuk menunggu sampai debugger dilampirkan untuk memulai eksekusi, jika tidak (jika 'n'), segera mulai eksekusi.Xrunjdwpditinggalkan (atau dihapus?) Mengapa kita harus mengambilnya agentlib:jdwp?
-Xdebug -Xrunjdwpketika men-debug proyek Maven, dan mereka berjalan seperti mereka JIT.
Karena Java 9.0 JDWP hanya mendukung koneksi lokal secara default. http://www.oracle.com/technetwork/java/javase/9-notes-3745703.html#JDK-8041435
Untuk debugging jarak jauh seseorang harus menjalankan program dengan *:alamat:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000
Untuk java 1.5 atau lebih besar:
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
Untuk java 1.4:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
Untuk java 1.3:
java -Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
Ini adalah output dari program sederhana:
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 menentukan port yang memungkinkannya untuk di-debug
** Aplikasi Debug Spring Boot dengan Maven:
mvn spring-boot:run -Drun.jvmArguments=**"-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8001"
Inilah solusi termudah.
Ada banyak konfigurasi khusus lingkungan yang diperlukan jika Anda menggunakan Maven. Jadi, jika Anda memulai program Anda dari maven, jalankan saja mvnDebugalih-alih mvn, itu akan memulai aplikasi Anda dengan konfigurasi debugging jarak jauh. Sekarang Anda bisa melampirkan debugger pada port 8000.
Ini akan mengurus semua masalah lingkungan untuk Anda.
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=PORT_NUMBER
Di sini kita hanya menggunakan Socket Attaching Connector, yang diaktifkan secara default ketika transport dt_socket dikonfigurasi dan VM berjalan dalam mode debugging server.
Untuk lebih jelasnya Anda bisa merujuk ke: https://stackify.com/java-remote-debugging/
*:1044mengaktifkan debugging jarak jauh dari komputer mana pun