Dans le cadre d'un développement standard, il est inutile de vous préoccuper de la machine virtuelle utilisée par chaque instance de l'éditeur visuel. Toutefois, les utilisateurs avancés peuvent configurer le plan de travail afin que les messages envoyés aux périphériques System.out ou System.err de la machine virtuelle soient consignés dans le fichier .log du répertoire .metadata dans l'espace de travail.
La machine virtuelle utilisée pour exécuter les beans Java ne correspond pas à celle dans laquelle s'exécute le plan de travail. Une machine virtuelle distincte est créée pour chaque instance de l'éditeur visuel. Le chemin de classe de cette machine virtuelle correspond aux entrées du chemin de compilation Java du projet. Si le chemin de compilation Java est modifié alors que l'éditeur visuel est ouvert, tous les éditeurs ouverts doivent être fermés, puis rouverts pour prendre en compte le chemin de compilation mis à jour.
Lors du démarrage du plan de travail, vous pouvez entrer l'option -DEBUG associée à un nom de fichier texte :
-DEBUG file:/c:/temp/options.txt
Le fichier de débogage contient des entrées qui sont lues par l'éditeur visuel. Si le fichier contient la ligne suivante, les fichiers envoyés au périphérique System.out ou System.err s'affichent sur la console.
org.eclipse.jem.proxy/debug/vmtraceout=true
Outre l'utilisation de la console pour afficher les données de la machine virtuelle utilisée par l'éditeur visuel, vous vous la démarrer en mode débogage et effectuer un débogage à distance. Ce scénario n'est pas optimisé et est susceptible d'être modifié dans les versions ultérieures de l'éditeur visuel. Toutefois, il est documenté pour vous permettre de déboguer les beans Java lors de la conception. Pour effectuer un débogage à distance, vous devez disposer de deux plans de travail en cours d'exécution : L'un comportant les beans Java que vous souhaitez déboguer et l'autre chargé d'effectuer le débogage à distance via une connexion socket. Le second plan de travail doit être en cours d'exécution sur le même système ou sur un autre système. Pour activer le débogage de la machine virtuelle de l'éditeur visuel, le fichier -DEBUG doit contenir la ligne :
org.eclipse.jem.proxy/debug/debugvm=true
Chaque fois que l'éditeur visuel lance une machine virtuelle, il vous demande si vous souhaitez la lancer en mode débogage. Ce message s'affiche dans une boîte de dialogue ; si le fichier -DEBUG contient l'entrée org.eclipse.jem.proxy/debug/ioconsole=true, il est transmis au périphérique System.out.
Si le message est transmis au périphérique System.out, vous devez indiquer Y ou N et attendre la procédure System.in :
Do you want to start the remote vm (Project (Test)-VM for HelloFrame.java) in debug mode? (Enter Y or N):
La boîte de dialogue précédente s'affiche lorsque la classe HelloFrame.java du projet Test est ouverte dans l'éditeur visuel. Si vous sélectionnez Yes ou Y et que vous appuyez sur Entrée dans la console, la machine virtuelle est lancée en mode Interruption avec l'option -Xdebug à l'aide d'un connecteur de socket. Le programme affecte un port disponible, puis vous indique le numéro correspondant.
Si le message est transmis au périphérique System.out, il attend la procédure System.in .
Vous devez à présent connecter le débogueur au numéro de port 7078. Entrez 'y' lorsque le débogeur est connecté. Si le débogueur n'est pas connecté, le programme ne fonctionne pas correctement. Si vous ne parvenez pas à connecter le débogueur, appuyez sur 'n'. Cette opération génère une erreur mais elle permet d'améliorer la procédure de nettoyage. Entrez 'y' ou 'n':
L'étape suivante consiste à connecter un débogeur éloigné au numéro de port 7078. L'instance du plan de travail qui exécute l'éditeur visuel est interrompue lors de la connexion du débogueur. Vous devez donc utiliser le débogueur d'une autre application. Si l'autre application correspond à une autre instance du plan de travail, vous pouvez commencer le débogage éloigné en utilisant l'option de menu Déboguer > Déboguer et en créant une configuration Application Java distante.
Entrez le numéro de port transmis précédemment à stdout par le composant à déboguer, ici 7078. Si le débogueur se trouve sur une autre machine, utilisez la zone Hôte pour entrer l'adresse IP du système exécutant le plan de travail en cours de débogage. Pour lancer le débogueur éloigné, cliquez sur Déboguer, puis entrez y dans la console stdin du plan de travail en cours de débogage.
Outre le message vous invitant à déboguer la machine virtuelle utilisée par chaque instance de l'éditeur visuel, d'autres messages s'affichent pour vous inviter à déboguer le projet :
Do you want to start the remote vm (Project (Test)-Beaninfo) in debug mode? (Enter Y or N):
Il s'agit de la machine virtuelle utilisée pour l'introspection dans laquelle java.beans.Introspector s'exécute. Vous pouvez la différencier de la machine virtuelle l'éditeur visuel car elle n'indique pas de nom de fichier source Java. Cette machine virtuelle est lancée la première fois qu'un élément BeanInfo est nécessaire pour un bean Java au sein d'un projet et reste active tant que le projet est ouvert. Lorsque vous déboguez ce projet, vous pouvez accéder au code des classes BeanInfo et l'analyser pendant l'introspection des beans Java. L'introspection est effectuée une fois pour chaque classe de bean Java de chaque projet. Les résultats sont conservés en mémoire cache pour des raisons de performances. Si vous devez effacer les informations BeanInfo contenues dans la mémoire cache, vous pouvez fermer et ouvrir le projet à partir de son menu en incrustation.
Rubrique parent : Test et débogage dans l'éditeur visuel