Saya tahu ada beberapa yang JAVA_OPTS
diatur untuk men-debug program Java dari jarak jauh.
Apa itu dan apa artinya?
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
*:1044
mengaktifkan debugging jarak jauh dari komputer mana punSebelum Java 5.0, gunakan
-Xdebug
dan-Xrunjdwp
argumen. 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:jdwp
opsi tunggal:Opsi
-Xrunjdwp
atauagentlib:jdwp
argumen 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.sumber
Xrunjdwp
ditinggalkan (atau dihapus?) Mengapa kita harus mengambilnyaagentlib:jdwp
?-Xdebug -Xrunjdwp
ketika 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:sumber
Untuk java 1.5 atau lebih besar:
Untuk java 1.4:
Untuk java 1.3:
Ini adalah output dari program sederhana:
sumber
Jawa
address
menentukan port yang memungkinkannya untuk di-debugMaven
** Aplikasi Debug Spring Boot dengan Maven:
sumber
Inilah solusi termudah.
Ada banyak konfigurasi khusus lingkungan yang diperlukan jika Anda menggunakan Maven. Jadi, jika Anda memulai program Anda dari maven, jalankan saja
mvnDebug
alih-alihmvn
, 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.
sumber
Garis komando
Gradle
Maven
sumber
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/
sumber