Saya berasumsi Anda ingin dapat menggunakan langkah-langkah debugging dari Eclipse. Anda bisa menjalankan kelas secara eksternal dengan menyetel kelas yang dibangun di direktori bin pada jalur kelas JRE.
java -cp workspace\p1\bin;workspace\p2\bin foo.Main
Anda dapat men-debug menggunakan debugger jarak jauh dan memanfaatkan file kelas yang dibangun dalam proyek Anda.
Dalam contoh ini, struktur proyek Eclipse terlihat seperti ini:
workspace\project\
\.classpath
\.project
\debug.bat
\bin\Main.class
\src\Main.java
1. Mulai Konsol JVM dalam Mode Debug
debug.bat adalah file batch Windows yang harus dijalankan secara eksternal dari konsol cmd.exe .
@ECHO OFF
SET A_PORT=8787
SET A_DBG=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=%A_PORT%,server=y,suspend=y
java.exe %A_DBG% -cp .\bin Main
Dalam argumen, port debug telah disetel ke 8787 . The menangguhkan = y argumen memberitahu JVM untuk menunggu sampai atase debugger.
2. Buat Konfigurasi Peluncuran Debug
Di Eclipse, buka dialog Debug (Run> Open Debug Dialog ...) dan buat konfigurasi Aplikasi Java Jarak Jauh baru dengan setelan berikut:
- Proyek: nama proyek Anda
- Jenis Koneksi: Standar (Socket Attach)
- Host: localhost
- Pelabuhan: 8787
3. Debugging
Jadi, yang harus Anda lakukan kapan pun Anda ingin men-debug aplikasi adalah:
- menetapkan titik istirahat
- meluncurkan file batch di konsol
- luncurkan konfigurasi debug
Anda dapat melacak masalah ini di bug 122429 . Anda dapat mengatasi masalah ini dalam aplikasi Anda dengan menggunakan lapisan abstraksi seperti yang dijelaskan di sini .
System.out
danSystem.in
mencukupi untuk kasus penggunaan saya dan berhenti menggunakanSystem.console()
.