IntelliJ IDEA 2025.2 Help

教程:远程调试

在本教程中,我们将学习如何使用 IntelliJ IDEA 调试器附加到本地或远程进程。

概览

远程调试允许您像调试本地程序一样控制和检查在另一台计算机上运行的 Java 程序。

为此,您需要先在远程计算机上启动应用程序,并通过添加一个特殊的 VM 选项来配置它以接受调试器连接。 该选项使远程 JVM 等待来自调试器的传入连接。

一旦远程应用程序启动并开始监听,您就可以使用本地计算机以“附加”模式启动调试器。 这会将 IntelliJ IDEA 的调试器通过网络连接到远程应用程序,从而允许您进行调试。

创建项目

首先,让我们设置要调试的项目——一个简单的程序,它输出从 AZ 的大写字母。

  1. 创建新项目

  2. 创建一个名为 Alphabet 的类。

    在 Project 工具窗口中的 Alphabet.java
  3. Alphabet 类的主体中,粘贴以下 main 方法的定义:

    public static void main(String[] args) { System.out.println("Starting"); for (char c = 'A'; c < 'Z'; c++) { try { Thread.sleep(2500); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(c); } System.out.println("Complete"); }

创建运行配置

为了允许调试器附加,我们需要使用特殊参数运行应用程序(稍后会详细介绍)。 在本教程中,我们将设置一个运行/调试配置来为我们执行此操作。 这样,我们将有两个运行/调试配置: 一个用于运行应用程序另一个用于附加到它

设置调试器

首先,我们需要设置运行/调试配置,以便附加到主机应用程序。

  1. 在主菜单中,转到 运行 | 编辑配置 或按 Alt+Shift+F10 然后 0

  2. 运行/调试配置 对话框中,点击 添加新配置 按钮 并选择 远程 JVM 调试

    “运行/调试配置”对话框左上角的“添加新配置”按钮
  3. 配置/使用以下属性:

    • 名称 :为此运行/调试配置定义一个方便的名称或保留默认值。

    • 主持人 :主机应用程序将运行的机器地址。 由于我们在同一台机器上运行它,因此它需要是 localhost 。 如果该程序在其他机器上运行,您可以在此处指定其地址,例如: 192.168.17.43

    • 远程 JVM 的命令行参数 :启动主机应用程序所需的 VM 选项。 我们将在其他运行/调试配置中使用它们。 您可以现在复制它们,或者稍后再回到这个字段。

    远程 JVM 字段的 Name、Host 和 Command line arguments
  4. 点击 应用

设置主机应用程序

主应用程序的运行方式没有任何限制。 例如,您可以 将应用程序打包为 JAR ,并使用以下命令行运行它:

java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 remote-debug.jar

在本教程中,我们将使用一个 run/debug 配置,它将为我们完成大部分工作。

  1. 右键点击 Alphabet 类主体的任意位置。 选择 更多运行/调试 ,然后 修改运行配置

  2. 点击 修改选项 ,然后选择 添加虚拟机选项(V)。 请在 虚拟机选项 字段中粘贴您从 调试配置 中复制的选项。

    主机应用运行/调试配置中的 VM options 字段
  3. 点击 应用

运行应用程序

现在我们已经准备好所有必要的东西,可以继续运行我们的应用程序。

  • Alt+Shift+F10 并选择 Alphabet

    运行弹出窗口

在程序输出中,第一行将是:

Listening for transport dt_socket at address: 5005

这表示我们已启用了调试代理程序并且我们的程序已经准备好接受传入的调试器连接。

如果该行未出现,请确保端口未被其他应用程序使用或未被防火墙或安全设置阻止。

附加到进程

  1. 点击第 10 行的边距以在此处设置行断点。

    在第 10 行设置行断点
  2. Alt+Shift+F9 并选择您的远程调试配置。

    调试 弹窗

结果是,程序在断点处暂停,您可以执行任何调试操作,如 单步执行表达式求值等。

蓝色高亮表示程序在第 10 行暂停

不管应用程序如何及在哪里启动,调试过程都是相同的。 连接后,您可以使用与直接从 IntelliJ IDEA 启动应用程序时相同的调试功能。

关闭调试会话

  1. 关闭 调试 工具窗口中对应的会话选项卡。

    在调试工具窗口顶部的当前会话标签
  2. 选择是否终止该进程或与其断开连接。

    • 断开连接 停止调试会话,而进程继续运行

    • 终止 同时停止进程和调试会话

    弹出窗口正在询问您是仅停止会话(Disconnect),还是同时停止会话和进程(Terminate)
最后修改日期: 2025年 9月 22日