对 Java 应用程序进行调试

要调试 Java™ 程序,可以使用 Java 调试器 (JDB) 应用程序或其他调试器,这些调试器使用 SDK 为操作系统提供的 Java 平台调试器体系结构 (JPDA) 进行通信。

可以在 故障诊断和支持中找到有关使用 Java 进行问题诊断的信息。

注: 在 AIX® 系统上, SDK 包含 AIX 调试器 DBX 的插件。 尽管 DBX 插件作为 SDK 的一部分提供,但它不受支持。 但是, IBM® 将接受错误报告。

Java 调试器

JDB 包含在 SDK中。 该调试器通过 jdb 命令启动;它使用 JPDA 连接到 JVM。

要调试 Java 应用程序,请执行以下操作:
  1. 使用以下选项启动 JVM:
    • 在 Windows 系统上:
      java -agentlib:jdwp=transport=dt_shmem,server=y,address=<port> <class>
    • 在其他系统上:
      java -agentlib:jdwp=transport=dt_socket,server=y,address=<port> <class>

    JVM 启动,但在启动 Java 应用程序之前暂挂执行。

  2. 您可以在单独的会话中将调试器连接到 JVM:
    jdb -attach <port>
    调试器将连接到 JVM ,您现在可以发出一系列命令来检查和控制 Java 应用程序; 例如,输入 run 以允许 Java 应用程序启动。
要调试在远程工作站上运行的 Java 应用程序,请执行以下操作:
JPDA 使用 TCP/IP 套接字连接到远程 JVM。
  1. 使用以下选项启动 JVM:
    • 在 Windows 系统上:
      java -agentlib:jdwp=transport=dt_shmem,server=y,address=<port> <class>
    • 在其他系统上:
      java -agentlib:jdwp=transport=dt_socket,server=y,address=<port> <class>

    JVM 启动,但在启动 Java 应用程序之前暂挂执行。

  2. 将调试器连接到远程 JVM:
    • 在 Windows 系统上:
      jdb -connect com.sun.jdi.SocketAttach:hostname=<host>,port=<port>
    • 在其他系统上:
      jdb -attach <host>:<port>
要了解更多信息,请访问:
  • 有关 JDB 选项的更多信息,请输入:jdb -help
  • 有关 JDB 命令的更多信息:
    1. 类型jdb
    2. jdb 提示符下,输入 help
  • 有关 JDB 和 JPDA 及其用法的更多信息,请参阅: