Während der normalen Entwicklung sollte es nicht erforderlich sein, dass Sie sich um die VM, die durch jedes Element des Visual Editors verwendet wird, sorgen. Erfahrene Benutzer jedoch können die Workbench so konfigurieren, dass alle Nachrichten, die an 'System.out' oder 'System.err' der VM gesendet werden, in die Datei '.log' im Verzeichnis '.metadata' in Ihrem Arbeitsbereich geschrieben werden.
Die virtuelle Maschine (VM), die zur Ausführung der Java-Beans verwendet wird, ist nicht dieselbe VM, in der die Workbench ausgeführt wird. Für jedes Exemplar des Visual Editors wird eine separate VM erstellt. Der Klassenpfad dieser VM ist so festgelegt, dass es sich um die Einträge im Java-Erstellungspfad für das Projekt handelt. Wenn der Java-Erstellungspfad geändert wird, während der Visual Editor geöffnet ist, muss jeder offene Editor geschlossen und wieder geöffnet werden, um den aktualisierten Erstellungspfad widerzugeben.
Wenn die Workbench gestartet wird, kann sie mit einer '-DEBUG'-Option versehen werden, die auf eine Textdatei verweist:
-DEBUG file:/c:/temp/options.txt
Die Debug-Datei enthält Einträge, die durch den Visual Editor gelesen werden. Wenn die Datei die folgende Zeile enthält, werden alle an System.out oder System.err gesandten Nachrichten in der Konsole angezeigt:
org.eclipse.jem.proxy/debug/vmtraceout=true
Zusätzlich zu der Anzeige in der Konsole durch die VM, die durch den Visual Editor verwendet wird, können Sie sie im Debugmodus starten und ein fernes Debug durchführen. Dieses Szenario ist nicht optimiert und kann in zukünftigen Versionen des Visual Editors noch geändert werden. Es ist jedoch bereits dokumentiert, falls Sie ein Debug Ihrer Java-Beans während der Entwicklungszeit durchführen müssen. Um ein fernes Debug durchzuführen, benötigen Sie zwei aktive Workbenchs: Eine mit der Java-Beans, bei der Sie das Debug durchführen möchten und eine, die ein socket-basiertes fernes Debug durchführen kann. Die zweite Workbench kann auf derselben oder einer anderen Maschine ausgeführt werden. Um das Debug auf der VM des Visual Editors zu ermöglichen, muss die '-DEBUG'-Datei die folgende Zeile enthalten:
org.eclipse.jem.proxy/debug/debugvm=true
Jedes mal, wenn der Visual Editor eine VM startet, werden Sie gefragt, ob Sie diese im Debugmodus starten möchten oder nicht. Diese Nachricht wird entweder in einen Dialog oder, wenn die '-DEBUG'-Datei den Eintrag org.eclipse.jem.proxy/debug/ioconsole=true enthält, in 'System.out' geschrieben.
Wenn die Nachricht in 'System.out' geschrieben wird, werden Sie aufgefordert, 'J' oder 'N' einzugeben und es wird auf 'System.in' gewartet:
Möchten Sie die ferne VM (Projekt (Test)-VM für HelloFrame.java) im Debugmodus starten? (Geben Sie 'J' oder 'N' ein:
Der obige Dialog gilt dann, wenn die Klasse HelloFrame.java im Projekt 'Test' mit dem Visual Editor geöffnet wurde. Wenn Sie 'Ja' wählen oder 'J' eingeben und die Eingabetaste in der Konsole betätigen, wird die VM im Aussetzungsmodus gestartet, wobei -Xdebug eine Socketverbindung verwendet. Es wird ein freier Port zugeordnet. Dann wird Ihnen dessen Nummer mitgeteilt.
Wenn die Nachricht in 'System.out' geschrieben wird, wartet sie auf die Eingabe in 'System.in'.
Sie müssen den Debugger nun dem Port Nummer 7078 zuordnen. Geben Sie 'j' ein, wenn der Debugger zugeordnet ist. Das Programm wird nicht ordnungsgemäß weitergeführt, ohne dass der Debugger zugeordnet ist. Betätigen Sie 'n', wenn Sie den Debugger nicht zuordnen konnten. Dadurch wird zwar immer noch ein Fehler verursacht, aber er kann besser bereinigt werden. Geben Sie 'j' oder 'n' ein:
Der nächste Schritt ist die Zuordnung eines fernen Debuggers zu Port Nummer 7078. Das Element der Workbench, das den Visual Editor ausführt, wird ausgesetzt, während der ferne Debugger zugeordnet wird, so dass Sie einen Debugger einer anderen Anwendung verwenden müssen. Wenn es sich bei der anderen Anwendung um ein anderes Element der Workbench handelt, können Sie das ferne Debug unter Verwendung der Menüoption Debug > Debug beginnen und eine ferne Java-Anwendungskonfiguration erstellen.
Geben Sie die Port-Nummer ein, die zuvor durch den Debugger in 'stdout' geschrieben wurde, in diesem Fall 7078. Wenn sich der Debugger auf einer anderen Maschine befindet, müssen Sie im Feld Host die IP-Adresse der Maschine eingeben, welche die Workbench ausführt, für die das Debug durchgeführt wird. Um das ferne Debug zu starten, klicken Sie auf 'Debug' und geben dann 'j' in der 'stdin'-Konsole der Workbench ein, für die das Debug durchgeführt wird.
Zusätzlich zu der Aufforderung, die VM, die durch jedes Element des Visual Editors verwendet wird, zu debuggen, werden Sie Nachrichten sehen, die sie auffordern, das Projekt selbst zu debuggen:
Möchten Sie die ferne VM (Projekt (Test)-Beaninfo) im Debugmodus starten? (Geben Sie 'J' oder 'N' ein:
Dies bezieht sich auf die VM, die für die Introspektion verwendet wird und auf der java.beans.Introspector ausgeführt wird und unterscheidet sich von der VM für den Visual Editor, da kein spezifischer Java-Quellendateiname angegeben wird. Diese VM wird zum ersten Mal gestartet, wenn eine Bean-Info für eine Java-Bean innerhalb eines Projekts erforderlich und sie bleibt aktiv, solange das Projekt geöffnet ist. Ein Debug dieses Projekts ermöglicht es Ihnen, alle Codes in Ihren BeanInfo-Klassen durchzugehen, wenn Ihre Java-Beans einer Introspektion unterzogen werden. Die Introspektion erfolgt einmal für jede Java-Bean-Klasse für jedes Projekt, in der sie verwendet wird. Das Ergebnis wird zwischengespeichert, um die Leistung zu unterstützen. Wenn Sie zu irgendeinem Zeitpunkt den Zwischenspeicher, der die BeanInfo-Informationen für ein Projekt enthält, löschen müssen, können Sie das Projekt über sein Kontextmenü 'Schließen' und 'Öffnen'.
Übergeordnetes Thema: Testen und Debuggen im Visual Editor