Zakładam, że chcesz mieć możliwość debugowania krok po kroku z Eclipse. Możesz po prostu uruchamiać klasy zewnętrznie, ustawiając zbudowane klasy w katalogach bin w ścieżce klas JRE.
java -cp workspace\p1\bin;workspace\p2\bin foo.Main
Możesz debugować za pomocą zdalnego debugera i korzystając z plików klas wbudowanych w projekcie.
W tym przykładzie struktura projektu Eclipse wygląda następująco:
workspace\project\
\.classpath
\.project
\debug.bat
\bin\Main.class
\src\Main.java
1. Uruchom konsolę JVM w trybie debugowania
debug.bat to plik wsadowy systemu Windows, który powinien być uruchamiany zewnętrznie z konsoli 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
W argumentach port debugowania został ustawiony na 8787 . Argument suspend = y informuje maszynę JVM, aby poczekała, aż debugger się podłączy.
2. Utwórz konfigurację uruchamiania debugowania
W Eclipse otwórz okno dialogowe Debugowanie (Uruchom> Otwórz okno dialogowe debugowania ...) i utwórz nową konfigurację zdalnej aplikacji Java z następującymi ustawieniami:
- Projekt: nazwa twojego projektu
- Typ połączenia: standardowe (podłączenie do gniazda)
- Host: localhost
- Port: 8787
3. Debugowanie
Tak więc wszystko, co musisz zrobić za każdym razem, gdy chcesz debugować aplikację, to:
- ustawić punkt przerwania
- uruchom plik wsadowy w konsoli
- uruchom konfigurację debugowania
Możesz śledzić ten problem w błędzie 122429 . Możesz obejść ten problem w swojej aplikacji, używając warstwy abstrakcji, jak opisano tutaj .
System.out
iSystem.in
jako wystarczające dla mojego przypadku użycia i zrezygnowałem z używaniaSystem.console()
.