Apakah mungkin untuk melampirkan debugger IntelliJ IDEA ke proses Java yang sedang berjalan? Jika ya, bagaimana?
Apakah mungkin untuk melampirkan debugger IntelliJ IDEA ke proses Java yang sedang berjalan? Jika ya, bagaimana?
Jawaban:
Iya! Inilah cara Anda mengaturnya.
Buat konfigurasi Jalankan jauh:
Konfigurasi di atas menyediakan tiga bidang hanya baca. Ini adalah opsi yang memberi tahu JVM untuk membuka port 5005 untuk debugging jarak jauh ketika menjalankan aplikasi Anda. Tambahkan yang sesuai ke opsi JVM dari aplikasi yang Anda debug. Salah satu cara Anda melakukan ini adalah seperti ini:
export JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
Tetapi itu tergantung pada bagaimana Anda menjalankan aplikasi Anda. Jika Anda tidak yakin yang mana dari ketiganya berlaku untuk Anda, mulailah dengan yang pertama dan turun daftar sampai Anda menemukan yang berfungsi.
Anda dapat mengubah suspend=n
ke suspend=y
untuk memaksa aplikasi Anda menunggu sampai Anda terhubung dengan IntelliJ sebelum mulai. Ini bermanfaat jika breakpoint yang ingin Anda tekan terjadi pada startup aplikasi.
Mulai aplikasi Anda seperti biasa, lalu di IntelliJ pilih konfigurasi baru dan tekan 'Debug'.
IntelliJ akan terhubung ke JVM dan memulai debugging jarak jauh.
Anda sekarang dapat men-debug aplikasi dengan menambahkan breakpoint ke kode Anda di mana yang diinginkan. Output aplikasi akan tetap muncul di mana pun sebelumnya, tetapi breakpoints Anda akan muncul di IntelliJ.
Remote
tidak tersedia di edisi komunitas? Saya menggunakan versi berbayar. Adakah yang bisa dengan edisi komunitas mengonfirmasi?
System.out.println
di IntelliJ saat melakukan debug jarak jauh?
Itu mungkin, tetapi Anda harus menambahkan beberapa flag JVM ketika Anda memulai aplikasi Anda.
Anda harus menambahkan konfigurasi debug jarak jauh: Edit konfigurasi -> Jarak Jauh.
Kemudian Anda akan menemukan parameter jendela dialog yang ditampilkan yang harus Anda tambahkan ke eksekusi program, seperti:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
Kemudian ketika aplikasi Anda diluncurkan, Anda dapat melampirkan debugger Anda. Jika Anda ingin aplikasi Anda menunggu sampai debugger terhubung, ubah flag suspend menjadi y ( suspend=y
)
di AndroidStudio atau ide
tambahkan "Opsi VM" Konfigurasi
“-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005”
ingat "alamat"
Saya juga menggunakan aplikasi Tomcat GUI (dalam kasus saya: C: \ tomcat \ bin \ Tomcat9w.bin).
Buka tab Java :
Tetapkan properti Java Anda, misalnya:
Mesin virtual Java
C: \ Program Files \ Java \ jre-10.0.2 \ bin \ server \ jvm.dll
Mesin virtual Java
C: \ tomcat \ bin \ bootstrap.jar; C: \ tomcat \ bin \ tomcat-juli.jar
Opsi Java :
-Dcatalina.home = C: \ tomcat
-Dcatalina.base = C: \ tomcat
-Djava.io.tmpdir = C: \ tomcat \ temp
-Djava.util.logging.config.file = C: \ tomcat \ conf \ logging.properties
-agentlib: jdwp = transport = dt_socket, server = y, suspend = n, address = *: 8000
Opsi Java 9 :
--add-opens = java.base / java.lang = ALL-UNNAMED
--add-opens = java.base / java.io = ALL-UNNAMED
--add-opens = java.rmi / sun.rmi.transport = ALL-UNNAMED