Mam aplikację Java uruchomioną na komputerze z systemem Linux. Uruchamiam aplikację Java przy użyciu następujących opcji:
java myapp -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000, suspend=n
Na tym komputerze z systemem Linux otworzyłem port 4000 dla TCP. Korzystam z Eclipse z komputera z systemem Windows XP i próbuję połączyć się z tą aplikacją. Otworzyłem również port w systemie Windows.
Oba komputery są w sieci LAN, ale nie mogę połączyć debugera z aplikacją Java. Co ja robię źle?
java
debugging
remote-debugging
dzidzitop
źródło
źródło
Odpowiedzi:
Edycja: Zauważyłem, że niektórzy ludzie wycinają i wklejają tutaj wywołanie. Odpowiedź, którą pierwotnie udzieliłem, była istotna tylko dla PO. Oto bardziej nowoczesny styl wywoływania (w tym korzystanie z bardziej konwencjonalnego portu 8000):
Oryginalna odpowiedź następuje.
Spróbuj tego:
Dwa punkty tutaj:
runjdwp
opcji.źródło
-agentlib
dla przyjemności cięcia i wklejania. :-)W przypadku JDK 1.3 lub wcześniejszej:
Dla JDK 1.4
W przypadku nowszej wersji JDK:
Zmień numer portu w zależności od potrzeb.
Od java technotes
Jeszcze jedna rzecz do zapamiętania, z dokumentacji interfejsu JVM Tool :
źródło
Kroki:
Aby uzyskać szczegółowe informacje, zobacz Przewodnik krok po kroku dotyczący zdalnego debugowania Java .
źródło
Odpowiedź obejmująca Javę> = 9:
W przypadku Java 9+ opcja JVM wymaga niewielkiej zmiany, poprzedzając adres adresem IP maszyny obsługującej JVM, lub po prostu
*
:Jest to spowodowane zmianą odnotowaną w https://www.oracle.com/technetwork/java/javase/9-notes-3745703.html#JDK-8041435 .
W przypadku Java <9 wystarczy numer portu, aby się połączyć.
źródło
Chciałbym podkreślić, że kolejność argumentów jest ważna .
Dla mnie
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 -jar app.jar
polecenie otwiera port debugera ,ale
java -jar app.jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
polecenie nie .źródło
Oto jak powinieneś skonfigurować Eclipse Debugger do zdalnego debugowania:
Ustawienia Eclipse:
1. Kliknij przycisk Uruchom
2. Wybierz konfiguracje debugowania
3. Wybierz „Zdalna aplikacja Java”
4. Nowa konfiguracja
W przypadku JBoss:
1. Zmień
/path/toJboss/jboss-eap-6.1/bin/standalone.conf
vm w następujący sposób: Usuń komentarz z następującego wiersza, usuwając #:W przypadku Tomcat:
W pliku catalina.bat :
Krok 1:
Krok 2:
Krok 3: Uruchom Tomcat z wiersza polecenia, jak poniżej:
Następnie musisz ustawić punkty przerwania w klasach Java, które chcesz debugować.
źródło
JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
ps przepraszamy za zmiany, walczę z formatyzatorem.