W czasie zwykłego programowania nie trzeba poświęcać uwagi maszynie wirtualnej używanej przez poszczególne instancje edytora elementów wizualnych. Użytkownicy zaawansowani mogą jednak konfigurować środowisko robocze tak, aby dowolne komunikaty wysyłane do strumieni System.out i System.err maszyny wirtualnej były zapisywane w pliku .log w katalogu .metadata środowiska roboczego.
Maszyna wirtualna (VM) używana do wykonywania komponentów Java Bean nie jest tą samą, w obrębie której działa środowisko robocze. Dla każdej instancji edytora elementów wizualnych jest tworzona osobna maszyna wirtualna. Ścieżka klasy tej maszyny wirtualnej jest ustawiona na wpisy w ścieżce budowania Java dla projektu. Jeśli w czasie, gdy edytory elementów wizualnych są otwarte, ścieżka budowania Java zostanie zmieniona, otwarte edytory muszą zostać zamknięte i ponownie otwarte w celu odzwierciedlenia zaktualizowanej ścieżki budowania.
Środowisko robocze można uruchomić z opcją -DEBUG, która wskazuje na plik tekstowy:
-DEBUG file:/c:/temp/options.txt
Plik debugowania zawiera wpisy odczytywane przez edytor elementów wizualnych. Jeśli plik zawiera następujący wiersz, komunikaty wysłane do strumienia System.out lub System.err są wyświetlane w konsoli:
org.eclipse.jem.proxy/debug/vmtraceout=true
Oprócz wyświetlania w konsoli danych wyjściowych maszyny wirtualnej używanej przez edytor elementów wizualnych, można uruchomić maszynę wirtualną w trybie debugowania i wykonać debugowanie zdalne. Ten scenariusz nie został zoptymalizowany i może ulec zmianie w przyszłych wersjach edytora elementów wizualnych. Został jednak udokumentowany, aby umożliwić debugowanie komponentów Java Bean w czasie projektowania. Aby wykonać debugowanie zdalne, należy uruchomić dwa środowiska robocze: jedno zawierające komponenty Java Bean, które mają być debugowane, i drugie - które może wykonać debugowanie zdalne przez określone gniazdo. Drugie środowisko robocze może zostać uruchomione na tym samym lub na innym komputerze. Aby umożliwić debugowanie maszyny wirtualnej edytora elementów wizualnych, plik określony w opcji -DEBUG musi zawierać następujący wiersz:
org.eclipse.jem.proxy/debug/debugvm=true
Po każdym uruchomieniu przez edytor elementów wizualnych maszyny wirtualnej jest wyświetlane pytanie o włączenie trybu debugowania. Pytanie to jest umieszczane w oknie dialogowym lub, jeśli plik określony w opcji -DEBUG zawiera wpis org.eclipse.jem.proxy/debug/ioconsole=true, trafia do strumienia System.out.
Jeśli komunikat jest zapisywany do strumienia System.out, w odpowiedzi na pytanie należy nacisnąć klawisz T lub N i poczekać na wywołanie strumienia System.in:
Czy chcesz uruchomić zdalną maszynę VM (Projekt (Test)-VM dla HelloFrame.java) w trybie debugowania? Naciśnij klawisz T lub N:
Powyższy przykład dotyczy sytuacji, gdy w edytorze elementów wizualnych jest otwierana klasa HelloFrame.java w projekcie Test. Kliknięcie przycisku Tak (lub naciśnięcie klawiszy T i Enter w konsoli) spowoduje uruchomienie maszyny wirtualnej w trybie zawieszenia -Xdebug przy użyciu łącznika gniazda. Po przydzieleniu wolnego portu wyświetlany jest jego numer.
Jeśli komunikat jest zapisywany do strumienia System.out, będzie czekał na wprowadzenie danych do strumienia System.in.
Musisz teraz przyłączyć debuger do portu numer 7078. Po przyłączeniu debugera naciśnij klawisz T. Program nie będzie działał poprawnie bez przyłączonego debugera. Jeśli nie możesz przyłączyć debugera, naciśnij klawisz N. Nie zapobiegnie to wystąpieniu błędu, ale usprawni czyszczenie. Naciśnij klawisz T lub N:
Kolejnym krokiem jest przyłączenie debugera zdalnego do portu o numerze 7078. Instancja środowiska roboczego, w której działa edytor elementów wizualnych, zostanie zawieszona po przyłączeniu debugera zdalnego, więc należy korzystać z debugera pochodzącego z innej aplikacji. Jeśli ta aplikacja jest także instancją środowiska roboczego, można rozpocząć debugowanie zdalne, wybierając opcje Debuguj > Debuguj i tworząc nową konfigurację zdalnej aplikacji Java.
Należy wprowadzić numer portu zapisany uprzednio w wyjściu standardowym, w tym przypadku 7078. Jeśli debuger pracuje na innym komputerze, w polu Host należy wprowadzić adres IP komputera, na którym znajduje się debugowane środowisko robocze. Aby uruchomić debuger zdalny, należy kliknąć opcję Debuguj i nacisnąć klawisz t w konsoli wejścia standardowego debugowanego środowiska roboczego.
Oprócz pytania o debugowanie maszyny wirtualnej używanej przez poszczególne instancje edytora elementów wizualnych wyświetlane są komunikaty z pytaniami o debugowanie samego projektu:
Czy uruchomić zdalną maszynę VM (Projekt (Test)-Beaninfo) w trybie debugowania? Naciśnij klawisz T lub N:
Dotyczy to maszyny wirtualnej używanej w introspekcji i udostępniającej klasę java.beans.Introspector. Różni się ona od maszyny wirtualnej dla edytora elementów wizualnych, ponieważ nie określa nazwy pliku źródłowego Java. Ta maszyna wirtualna jest uruchamiana, gdy informacje o komponencie Java Bean są wymagane po raz pierwszy, i pozostaje aktywna do momentu zamknięcia projektu. Debugowanie projektu umożliwia krokowe przechodzenie przez kod w klasach BeanInfo i analizowanie go w trakcie introspekcji komponentów Java Bean. Introspekcja jest przeprowadzana raz dla każdej klasy komponentu Java Bean w każdym projekcie, w którym jest stosowana. Jej rezultat jest przechowywany w pamięci podręcznej w celu podniesienia wydajności środowiska. Aby w dowolnym momencie usunąć informacje o klasach BeanInfo z pamięci podręcznej, można zamknąć i ponownie otworzyć projekt, wybierając opcje z jego menu podręcznego.