Presumo che tu voglia essere in grado di utilizzare il debug passo-passo da Eclipse. È possibile eseguire le classi esternamente impostando le classi costruite nelle directory bin sul percorso di classe JRE.
java -cp workspace\p1\bin;workspace\p2\bin foo.Main
Puoi eseguire il debug utilizzando il debugger remoto e sfruttando i file di classe incorporati nel tuo progetto.
In questo esempio, la struttura del progetto Eclipse ha questo aspetto:
workspace\project\
\.classpath
\.project
\debug.bat
\bin\Main.class
\src\Main.java
1. Avviare la console JVM in modalità di debug
debug.bat è un file batch di Windows che dovrebbe essere eseguito esternamente da una console 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
Negli argomenti, la porta di debug è stata impostata su 8787 . L' argomento suspend = y indica alla JVM di attendere finché il debugger non si collega.
2. Creare una configurazione di avvio di debug
In Eclipse, apri la finestra di dialogo Debug (Esegui> Apri finestra di dialogo Debug ...) e crea una nuova configurazione dell'applicazione Java remota con le seguenti impostazioni:
- Progetto: il nome del tuo progetto
- Tipo di connessione: standard (attacco presa)
- Host: localhost
- Porta: 8787
3. Debug
Quindi, tutto ciò che devi fare ogni volta che vuoi eseguire il debug dell'app è:
- impostare un punto di interruzione
- avviare il file batch in una console
- avvia la configurazione di debug
Puoi tenere traccia di questo problema nel bug 122429 . È possibile aggirare questo problema nella propria applicazione utilizzando un livello di astrazione come descritto qui .
System.out
eSystem.in
per essere sufficiente per il mio caso d'uso e ho abbandonato l'utilizzoSystem.console()
.