В большинстве случаев задействовать дополнительные возможности виртуальной машины, используемой для каждого экземпляра визуального редактора, не требуется. Однако подготовленные пользователи могут настроить рабочую среду так, чтобы все сообщения, посылаемые в System.out или System.err виртуальной машины, записывались в файл протокола в каталоге .metadata, находящемся в рабочей области.
Для выполнения JavaBean и рабочей среды используются разные виртуальные машины (VM). Для каждого экземпляра визуального редактора создается отдельная VM. Путь к классам этой VM такой же как и путь компоновки Java текущего проекта. Если путь компоновки Java изменяется во время выполнения визуального редактора, то для того чтобы обновить путь к классам, следует перезапустить редактор.
Рабочую среду можно запустить с ключом -DEBUG, указывающим на файл с параметрами отладки:
-DEBUG file:/c:/temp/options.txt
Файл отладки используется визуальным редактором. Если в файле содержится следующая строка, то сообщения, посылаемые в System.out и System.err, выводятся в консоли:
org.eclipse.jem.proxy/debug/vmtraceout=true
Также, VM визуального редактора можно запустить в режиме отладки для удаленного мониторинга. Описанный ниже порядок действий не оптимизирован и могут измениться в следующих версиях визуального редактора. Тем не менее, его можно использовать для отладки JavaBean во время проектирования. Для удаленной отладки необходимо запустить две рабочие среды: одну для JavaBean, а вторую для работі с сокетами. Вторая рабочая среда может работать и на другом компьютере. Для включения отладки запустите виртуальную машину с ключом -DEBUG, указывающим на файл с такой строкой:
org.eclipse.jem.proxy/debug/debugvm=true
При каждом запуске VM визуальный редактор предлагает включить режим отладки. Соответствующее сообщение выводится на экран или, если в файле, указанном в ключе -DEBUG, содержится строка org.eclipse.jem.proxy/debug/ioconsole=true, в System.out.
В последнем случае потребуется ввести Y или N:
Do you want to start the remote vm (Project (Test)-VM for HelloFrame.java) in debug mode? (Enter Y or N):
Это сообщение для класса HelloFrame.java в проекте Test. При нажатии кнопки Да или вводе Y в консоли виртуальная машина запускается в режиме ожидания с ключом -Xdebug с помощью сокетного коннектора. Затем выделяется порт для соединения и сообщается его номер.
Если запрос на включение отладки осуществлялся через System.out, то виртуальная машина будет ожидать ввода с клавиатуры (т.е. из System.in).
You must now attach the debugger to port number 7078. Enter 'y' when the debugger is attached. The program will not continue properly without the debugger being attached. Press 'n' if you could not connect the debugger. This will still cause an error, but it will clean up better. Enter 'y' or 'n':
Далее следует подключить удаленный отладчик через указанный порт (в данном случае это 7078). Экземпляр рабочей среды, выполняющей визуальный редактор, переводится в режим ожидания на время подключения отладчика, следовательно нужно использовать отладчик из другого приложения. Если таким приложением является другой экземпляр рабочей среды, то для того чтобы начать отладку вызовите пункт меню Отладка > Начать отладку и создайте новую конфигурацию удаленного приложения Java.
Введите порт, сообщенный виртуальной машиной ранее, в данном случае это 7078. Если отладчик находится на другом компьютере, в поле Хост введите IP-адрес компьютера с отлаживаемой рабочей средой. Для запуска удаленного отладчика нажмите Отладка и введитеy в консоли рабочей среды.
Кроме возможности отладки VM, используемых визуальными редакторами, также предлагается запустить отладку самого проекта:
Do you want to start the remote vm (Project (Test)-Beaninfo) in debug mode? (Enter Y or N):
Это сообщение для VM, используемой для внутреннего анализа и выполняющей java.beans.Introspector. В отличие от VM визуального редактора, она не указывает имя исходного файла Java. Она запускается при первом запросе Beaninfo и завершается при закрытии проекта. Отладка этого проекта позволяет проанализировать код классов BeanInfo во врем я внутреннего анализа JavaBean. Внутренний анализ производится один раз для каждого из классов JavaBean в каждом из проектов, которые его используют. Результаты анализа хранятся в кэше для увеличения производительности. Для сброса кэша BeanInfo для данного проекта закройте и откройте его заново (с помощью контекстного меню).