用于调试 Java bean 的高级选项

在正常开发期间,您不需要关心每个可视编辑器实例使用的虚拟机 (VM)。但是,高级用户可以对工作台进行配置,以便发送到 VM 的 System.outSystem.err 的任何消息都可以写入工作空间中 .metadata 目录的 .log 文件中。

用于执行 Java™ bean 的虚拟机 (VM) 与工作台运行所在的 VM 不是同一 VM。将为可视编辑器的每个实例创建一个单独的 VM。此 VM 的类路径设置为项目的 Java 构建路径中的条目。如果在可视编辑器打开时更改了 Java 构建路径,那么必须关闭所有打开的编辑器然后将它们重新打开,以反映更新后的构建路径。

在工作台启动后会向其提供一个指向以下文本文件的 -DEBUG 选项:

-DEBUG file:/c:/temp/options.txt

该调试文件包含可由可视编辑器读取的条目。如果该文件包含以下行,那么发送到 System.outSystem.err 的所有消息都会显示在控制台中:

org.eclipse.jem.proxy/remote/debug/vmtraceout=true

除了可以从可视编辑器使用的 VM 显示控制台输出,您还可以调试方式启动控制台并执行远程调试。此方案尚未优化,在可视编辑器的未来版本中可能会更改。但是,如果您需要在设计时调试 Java bean,那么将记录该方案。要执行远程调试,您需要运行两个工作台:一个是具有您要调试的 Java bean 的工作台,另一个是可以执行基于套接字的远程调试的工作台。第二个工作台可与第一个工作台在相同机器或不同机器上运行。要启用可视编辑器的 VM 调试,-DEBUG 文件应包含以下行:

org.eclipse.jem.proxy/remote/debug/debugvm=true

每次可视编辑器启动 VM 时,它都会询问您是否要以调试方式启动。

当使用可视编辑器打开项目“测试”中的类 HelloFrame.java 时,将出现以上对话框。如果选择“是”,或在控制台中输入 Y 并按 Enter 键,那么将使用套接字连接器以带有 -Xdebug 的暂挂模式启动 VM。 将分配一个空闲端口。然后会告知您端口号。

下一步是将远程调试器连接到 7078 号端口。连接远程调试器时,运行可视编辑器的工作台实例将暂挂,所以您必须使用其他应用程序的调试器。 如果使用的另一个应用程序是工作台的另一个实例,那么可通过使用菜单选项调试 > 调试并创建新的远程 Java 应用程序配置来开始远程调试。

输入先前写入标准输出的端口号,在此例中为 7078。如果调试器位于其他机器上,那么您必须在主机字段中输入运行待调试工作台的机器的 IP 地址。要开始使用远程调试器,请单击调试,然后在待调试工作台的标准输入控制台中输入 y

除了提示您调试可视编辑器的每个实例使用的 VM 以外,您还会看到一些消息提示您调试项目本身:

Do you want to start the remote vm (Project (Test)-Beaninfo) in debug mode? (Enter Y or N):

对于用于自省和运行 java.beans.Introspector 的 VM 会出现此消息,且可与可视编辑器的 VM 相区分,原因是可视编辑器未指定特定的 Java 源代码文件名称。当项目中的某个 Java bean 需要任何 bean 信息时,此 VM 将首次启动,且只要项目处于打开状态,该 VM 会一直保持活动状态。通过调试此项目,您可以在 Java bean 自省时,逐步了解并分析 beanInfo 类中的所有代码。每个项目中使用的每个 Java bean 类都会进行一次自省。结果保存在高速缓存中以帮助改进性能。任何时候,如果您需要清除对某个项目中保存的 BeanInfo 信息的高速缓存,您可以从其弹出菜单中关闭然后打开该项目。


反馈