Presumo que você queira usar a depuração passo a passo do Eclipse. Você pode simplesmente executar as classes externamente, definindo as classes construídas nos diretórios bin no caminho de classe JRE.
java -cp workspace\p1\bin;workspace\p2\bin foo.Main
Você pode depurar usando o depurador remoto e aproveitando as vantagens dos arquivos de classe construídos em seu projeto.
Neste exemplo, a estrutura do projeto Eclipse se parece com isto:
workspace\project\
\.classpath
\.project
\debug.bat
\bin\Main.class
\src\Main.java
1. Inicie o console JVM no modo de depuração
debug.bat é um arquivo em lote do Windows que deve ser executado externamente a partir de um 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
Nos argumentos, a porta de depuração foi definida como 8787 . O argumento suspend = y diz à JVM para esperar até que o depurador seja conectado.
2. Crie uma configuração de inicialização de depuração
No Eclipse, abra a caixa de diálogo Debug (Run> Open Debug Dialog ...) e crie uma nova configuração de aplicativo Java remoto com as seguintes configurações:
- Projeto: o nome do seu projeto
- Tipo de conexão: Padrão (conexão de soquete)
- Host: localhost
- Porta: 8787
3. Depuração
Portanto, tudo o que você precisa fazer sempre que quiser depurar o aplicativo é:
- definir um ponto de interrupção
- lançar o arquivo em lote em um console
- iniciar a configuração de depuração
Você pode rastrear esse problema no bug 122429 . Você pode contornar esse problema em seu aplicativo usando uma camada de abstração conforme descrito aqui .
System.out
eSystem.in
para ser suficiente para meu caso de uso e abandonei o usoSystem.console()
.