# Spring Boot 运行配置

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com.cn/help/idea/llms.txt).

Spring Boot   运行配置定义了如何在 IntelliJ IDEA 中运行您的 Spring Boot 应用程序。 IDE 会在您从主类文件运行应用程序时创建一个   Spring Boot  运行配置。 如需更多信息，请参阅 [运行 Spring Boot 应用程序](spring-boot.html#run-a-spring-boot-application)。

Procedure: 创建 Spring Boot 运行配置

1. 在主菜单中，前往  `运行 | 编辑配置…` 。

2. 在   运行/调试配置  对话框中，点击 !["添加"按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg)并选择   Spring Boot  。

![Spring Boot 运行配置](https://resources.jetbrains.com.cn/help/img/idea/2026.3/workspace.xml` 。     |

> **Note:**
> 运行   选项可用于 IntelliJ IDEA Ultimate 订阅。

## 必填选项

要运行您的 Spring Boot 应用程序，必须使用以下选项：

|    JRE    |  指定 IntelliJ IDEA 应该使用的运行时环境来运行应用程序。 默认情况下，IntelliJ IDEA 使用模块依赖项中最新可用的 JDK。  |
|    主类    |  指定要执行的类的完全限定名称。  |

## 修改选项

点击   修改选项  选择运行配置的其他选项。

![修改 Spring Boot 运行配置的选项](https://resources.jetbrains.com.cn/help/img/idea/2026.3/spring_boot_run_config_modify_options.png)

### Spring

以下选项适用于运行 Spring Boot 应用程序：

|    有效配置文件    |     指定应激活的 Spring 配置文件。       这会在命令行上传递  `-Dspring.profiles.active` ，从而重写 [spring.profiles.active](https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#application-properties.core.spring.profiles.active) 属性。       如需更多信息，请参阅 [Spring Boot: Profiles](https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.profiles.adding-active-profiles)。     |
|    启用调试输出    |     启用调试输出的日志记录。       在命令行上传递  `-Ddebug` ，这与设置 [调试](https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#application-properties.core.debug) 属性类似。       如需更多信息，请参阅 [Spring Boot：日志记录](https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.logging.console-output)。     |
|    隐藏横幅    |     完全禁用启动横幅。       这是在命令行上传递  `-Dspring.main.banner-mode=OFF` ，类似于将 [spring.main.banner-mode](https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#application-properties.core.spring.main.banner-mode) 属性设置为  `关` 。       如需了解更多信息，请参阅 [Spring Boot: Customizing the banner](https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.spring-application.banner)。     |
|    禁用启动优化    |     不要加快您的应用程序的启动时间。       默认情况下，可以通过在命令行上传递以下 JVM 选项启用此优化：  `-XX:TieredStopAtLevel=1` 和  `-noverify` （后者在 JDK 13 及更高版本中已弃用）。 这会以长期性能和安全性为代价减少应用程序的启动时间。 您可以在开发环境中保持启用，但在生产运行中禁用。     |
|       禁用 JMX 端点          （Ultimate 订阅）      |     禁用 JMX 代理，以在   执行器   选项卡的   运行   工具窗口中显示应用程序端点数据。       默认情况下，可以通过在命令行上传递以下 JVM 选项来启用 JMX 代理：        * `-Dcom.sun.management.jmxremote`    * `-Dspring.jmx.enabled=true`    * `-DSpring.liveBeansView.mbeanDomain`    * `-Dspring.application.admin.enabled=true`    * `-Dmanagement.endpoints.jmx.exposure.include=*`      这会减慢应用启动速度。 如果您禁用 JMX 代理，上述选项将不会添加到命令行。       如需更多信息，请参阅 [Spring: JMX](https://docs.spring.io/spring-framework/docs/current/reference/html/integration.html#jmx)      > **Note:** > Spring Boot 端点功能默认情况下不适用于使用 FAT 文件系统的 Windows 用户。 要启用它，请将  `-XX:+PerfBypassFileSystemCheck` 添加到 [VM options](#vm-options)，并确保  `%TMP%\hsperfdata_username` 具有对文件夹的完全访问权限。     > **Note:** > IntelliJ IDEA 使用本地 JMX 连接器获取 Spring Boot actuator 端点的数据。 然而，如果 Spring Boot 应用程序和 JVM 具有不同的位数，并且您使用的是 OpenJ9 JDK，则无法获取本地 JMX 连接器地址。 在此情况下，将以下选项添加到 [VM options](#vm-options) 字段： > > > > * `-Dcom.sun.management.jmxremote.port={some_port}` > > * `-Dcom.sun.management.jmxremote.authenticate=false` > > * `-Dcom.sun.management.jmxremote.ssl=false` > > > > 正如官方 [Oracle 文档](https://docs.oracle.com/javase/7/docs/technotes/guides/management/agent.html)中提到的，这个配置是不安全的。 任何远程用户只要知道（或猜到）您的端口号和主机名，就能够监控和控制您的 Java 应用程序和平台。    |
|       执行“更新”操作时          （Ultimate 订阅）      |     修改代码并希望更新正在运行的应用程序时，指定应该执行的操作：        * 不执行任何操作 ：不更新应用程序。    * 更新资源 ：更新所有已修改的资源文件。    * 更新类和资源 ：更新所有已修改的资源文件并重新编译所有已更改的 Java 类。 调试时，IntelliJ IDEA 将部署并重新加载更新的类。 有关更多信息，请参见 [重新加载修改的类](altering-the-program-s-execution-flow.html#reload_classes)。 否则，在常规运行应用程序时，IntelliJ IDEA 只会更新输出文件夹中已更改的类。 是否会在正在运行的应用程序中部署并重新加载这些类，取决于所用 Java 运行时的功能。    * 更新触发器文件 ：在命令行中传递 `-Dspring.devtools.restart.trigger-file=.restartTriggerFile` 并更新 `.restartTriggerFile` 文件，这将启动重启检查：应用程序只会在有事情可做时重启。    * 如果失败，则热更新类并更新触发器文件 ：这类似于先执行 [更新类和资源](#update-classes-and-resources)，再执行 [更新触发器文件](#update-trigger-file)。    |
|       框架停用时  :        （Ultimate 订阅）      |     指定当您从 IntelliJ IDEA 切换到另一个应用程序（例如网络浏览器）时的操作：        * 不执行任何操作 ：不更新应用程序。    * 更新资源 ：更新所有已修改的资源文件。    * 更新类和资源 ：更新所有已修改的资源文件并重新编译所有已更改的 Java 类。 调试时，IntelliJ IDEA 将部署并重新加载更新的类。 有关更多信息，请参见 [重新加载修改的类](altering-the-program-s-execution-flow.html#reload_classes)。 否则，在常规运行应用程序时，IntelliJ IDEA 只会更新输出文件夹中已更改的类。 是否会在正在运行的应用程序中部署并重新加载这些类，取决于所用 Java 运行时的功能。    |
|    重写配置属性    |  通过将其作为 JVM 选项传递来重写任何配置属性。 例如，如果您用  `my.config`  覆盖  `spring.config.name`  属性的值，IntelliJ IDEA 将在运行这个 Spring Boot 应用程序时在命令行上传递  `-Dspring.config.name=my.config` 。  |

### 操作系统

以下选项与操作系统相关：

|    允许多个实例    |  允许此运行配置的多个实例同时执行。 默认情况下，此选项是禁用的，这意味着当您运行该配置时，其他活动的配置会话将终止。  |
|    工作目录    |  指定将用于所有相对输入和输出路径的目录。 默认情况下，IntelliJ IDEA 使用项目根目录作为工作目录。  |
|    环境变量    |  指定运行此配置所需的环境变量的名称和值。  |

### Java

以下选项是针对 Spring 应用程序的 Java 编译器和运行时特定的：

|    运行前不构建    |  无需启动构建过程即可立即运行应用程序。  |
|    使用模块的类路径    |  选择应使用其类路径来运行应用程序的模块。  |
|    修改类路径    |     如有必要，请指定另一个 classpath 或选择您想从 classpath 排除的 dependencies。 当运行时类路径与编译类路径不同时（例如调试库、不同位置等），此选项是必要的。       请使用 ![向上](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.moveUp.svg) 和 ![向下](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.moveDown.svg) 按钮对列表中的依赖项进行排序。 依赖项的顺序很重要，因为 IntelliJ IDEA 会按照列表中指定的顺序处理它们。     |
|    VM 选项    |     指定启动应用程序时要传递给 Java 虚拟机的选项，例如  `-mx` 、  `-verbose`  等。       指定 JVM 选项时，请遵循以下规则：        * 使用空格来分隔各个选项。    * 如果选项的值包含 Space，请用双重引用符将该值或实际的 Space 括起来。    * 如果选项包含作为值一部分的双重引用符，请使用反斜杠对双重引用符进行转义。    * 您可以将环境变量值传递给自定义 Java 属性。      ```PLAINTEXT -Xmx1024m -Dspaces="some arg" -Dmy.prop=\"quoted_value\" -Dfoo=${MY_ENV_VAR}  ```      在此字段中使用代码补全：开始输入标志的名称，IDE 会建议可用的命令行选项列表。 这适用于  `-XX:`  和  `-X`  选项以及一些不是由 IntelliJ IDEA 自动配置的标准选项，例如  `-ea` ，但不适用于  `-cp`  或  `–release` 。       在此字段中指定的  `-classpath`  选项会重写模块的类路径。     |
|    使用“运行到光标”记录性能    |  在调试期间使用 [运行到光标处](stepping-through-the-program.html#measure_execution_time_with_run_to_cursor)时测量执行时间，并将结果作为标签显示在装订区域中。  |
|    程序参数    |  将命令行参数传递给您的应用程序。  |
|    将带有 "provided" 作用域的依赖项添加到类路径    |     将具有  `已提供`  作用域的依赖项添加到运行时类路径。       在 Spring Boot 运行配置中，默认启用此选项。     |
|    缩短命令行    |     如果类路径过长，或者虚拟机实参过多而超过操作系统的命令行长度限制，请选择一种用于缩短命令行的方法。 选项的选择取决于类加载器的实现。 请注意，某些框架不支持  JAR 清单 ，而其他具有自定义类加载器的框架将无法与   classpath.file   选项良好配合。        * 无 ：IntelliJ IDEA 将不会缩短过长的类路径。 如果命令行超过操作系统的限制，IntelliJ IDEA 将无法运行您的应用程序，并会显示一条消息，建议您指定缩短方法。    * JAR 清单 ：IntelliJ IDEA 将通过临时的 `classpath.jar` 传递过长的类路径。 原始类路径在 `manifest` 文件的 `classpath.jar` 中，作为 `class-path` 属性定义。 请注意，如果使用此方法缩短了命令行，则可以预览完整的命令行，而不仅仅是临时 `classpath.jar` 的类路径。    * classpath.file ：IntelliJ IDEA 将把过长的类路径写入一个文本文件。    * @argFiles (Java 9+) ：将使用 [@实参文件选项](https://docs.oracle.com/javase/9/tools/java.htm#JSWOR-GUID-4856361B-8BFD-4964-AE84-121F5F6CF111) 来克服命令行长度限制。     > **Note:** > 如果选择共享运行/调试配置，此设置将被共享，因此无论团队成员使用哪种操作系统，都会应用相同的方法。    |

### 日志

以下选项与记录此配置的执行相关。 有关更多信息，请参见 [日志](setting-log-options.html)。

|  条目  |  描述  |
| --- | --- |
|     指定要在控制台中显示的日志     |     指定在运行应用程序时显示哪些日志文件。       点击 !["添加"按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg) 添加新日志。 在   编辑日志文件别名  对话框中，配置以下内容：        * 别名 ：日志将显示的选项卡名称。    * 日志文件位置 ：指定日志文件的路径或 [Ant 模式](https://ant.apache.org/manual/dirtasks.html)。 如果多个滚动日志文件匹配该模式，IntelliJ IDEA 将显示最新的一个。    * 显示所有可由模式匹配的文件 ：显示所有匹配该模式的日志。      对于表中的日志，您可以配置以下选项：        * 处于活动状态 ：显示指定的日志文件。    * 跳过内容 ：不显示先前运行的旧日志消息。    |
|     将控制台输出保存到文件     |  将控制台输出保存到指定位置。 手动输入路径，或点击浏览按钮，然后在 [打开的对话框](null) 中指向所需位置。  |
|     在消息打印到标准输出时显示控制台​​絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍絠絍灾遇崶俶殊糇娘藏瘟殛面勺察揽慄馨湮斜烁磐彦箴腓蘖衮褚觎锲鸵,     |  当应用程序写入标准输出流时激活控制台。  |
|     在消息打印到标准错误流时显示控制台     |  当应用程序写入标准错误流时激活控制台。  |

### 代码覆盖率

以下选项与代码覆盖率相关。 有关更多信息，请参见 [代码覆盖率](code-coverage.html)。

|  条目  |  描述  |
| --- | --- |
|    指定类和包    |  在此表中，指定要测量的类和包。 点击 !["添加"按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg) 并选择 ![添加类按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.nodes.class.svg)   添加类   或 !["添加软件包"按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.nodes.package.png)   添加包   以指定。 您还可以在列表中选中它们，然后点击 ![移除该软件包](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.remove.svg) 按钮，以从列表中移除类和包。  |
|    排除类和包    |     指定要从覆盖率中排除的类和软件包。       点击 !["添加"按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg) 并选择 ![添加类按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.nodes.class.svg)   添加类   或 !["添加软件包"按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.nodes.package.png)   添加包   以指定类和包。     |

### 启动前

在此区域，您可以指定在启动所选的运行/调试配置之前需要执行的任务。 任务将按其在列表中出现的顺序执行。

|  条目  |  描述  |
| --- | --- |
|     添加启动前任务     |     启用此选项可添加以下可用任务之一：        * 启动 Web 浏览器‍™™™™™™™‍ ：选择此选项以启动浏览器。 在打开的对话框中，选择浏览器类型并提供起始 URL。 此外，请指定是否要使用 JavaScript 调试器启动浏览器。    * 运行外部工具 ：运行外部应用程序。 在打开的对话框中，选择您想要运行的一个或多个应用程序。 如果它在 IntelliJ IDEA 中尚未定义，请添加其定义。 更多信息请参阅 [外部工具](configuring-third-party-tools.html)。    * 运行另一个配置 ：选择执行另一个运行/调试配置，并等待其完成后再启动当前配置。 如果您想并行运行多个配置，请使用 [compound run/debug configuration](run-debug-multiple.html#compound-configs)。    * 运行远程外部工具 ：添加 [远程 SSH 外部工具](settings-tools-remote-ssh-external-tools.html)。    * 运行 Gradle 任务 ：运行 [Gradle 任务](create-run-debug-configuration-gradle-tasks.html)。 在打开的对话框中，指定任务并在必要时提供其他配置。    * 构建 ：选择编译指定的模块。 [构建模块](compiling-applications.html#compile_module) 操作将被执行。 如果在编译过程中发生错误，IntelliJ IDEA 将不会尝试启动运行/调试配置。    * 构建项目 ：选择编译整个项目。 [构建项目](compiling-applications.html#compile_module)操作将被执行。 如果在编译过程中发生错误，IntelliJ IDEA 将不会尝试启动运行/调试配置。    * 构建，不进行错误检查 ：与 构建 选项相同，但 IntelliJ IDEA 将会尝试启动运行/调试配置，而不考虑编译结果。    * 构建制品 ：选择此选项以构建一个或多个 [构件](working-with-artifacts.html)。 在打开的对话框中，选择应构建的 artifact。    * 运行 Maven 目标 ：选择此选项以 [运行一个 Maven 目标](work-with-maven-goals.html)。 在打开的对话框中，选择要运行的目标。    * 运行 Grunt 任务 ：选择此选项以运行 Grunt 任务。 在打开的 Grunt 任务 对话框中，指定定义所需任务的 `Gruntfile.js` ，选择要执行的任务，并指定传递给 Grunt 工具的参数。 指定 Node.js 解释器的位置、传递给它的参数以及 grunt-cli 包的路径。    * 运行 Gulp 任务 ：选择此选项以运行 Gulp 任务。 在打开的 Gulp 任务 对话框中，请指定定义所需任务的 `Gulpfile.js` ，选择要执行的任务，并指定传递给 Gulp 工具的参数。 指定 Node.js 运行时的位置、要传递给它的参数，以及 gulp 包的路径。    * 运行 npm 脚本 ：选择此选项以执行 npm script。 在打开的 npm 脚本 对话框中，指定 [npm 运行/调试配置设置](null)。    * 编译 TypeScript ：选择运行内置的 TypeScript 编译器，从而确保您对 TypeScript 代码所做的所有更改都反映在生成的 JavaScript 文件中。 在打开的 TypeScript 编译设置 对话框中，选择或清除 检查错误 复选框，以配置在检测到任何错误时编译器的行为： * 如果选中 检查错误 复选框，编译器将显示所有错误，运行配置将不会启动。 * 如果取消选中 检查错误 复选框，编译器将显示所有检测到的错误，但仍会启动运行配置。    * 断开数据源 ：如果您希望在运行/调试配置运行之前中断与数据源的连接，请选择此选项。    |
|     启动时打开运行/调试工具窗口     |     根据配置类型，启动此运行配置时，将打开 [运行](run-tool-window.html)、 [调试](debug-tool-window.html) 或 [服务](services-tool-window.html) 工具窗口。 如果此选项被禁用，您可以手动打开工具窗口：        * `视图 \| 工具窗口 \| 运行` 或 `Alt+4` (Windows), `⌘ 4` (macOS), `⌘ 4` (IntelliJ IDEA Classic (macOS)), `⌘ 4` (macOS System Shortcuts), `Alt+4` (XWin), `Alt+4` (GNOME), `Alt+4` (KDE), `Alt+4` (Emacs), `Alt+4` (Sublime Text), `⌘ 4` (Sublime Text (macOS)), `Alt+4` (Visual Studio), `⌘ 4` (Visual Studio (macOS)), `Alt+4` (NetBeans), `Alt+4` (Eclipse), `⌘ 4` (Eclipse (macOS))    * `视图 \| 工具窗口 \| 调试` 或 `Alt+5` (Windows), `⌘ 5` (macOS), `⌘ 5` (IntelliJ IDEA Classic (macOS)), `⌘ 5` (macOS System Shortcuts), `Alt+5` (XWin), `Alt+5` (GNOME), `Alt+5` (KDE), `Alt+5` (Emacs), `Alt+5` (Sublime Text), `⌘ 5` (Sublime Text (macOS)), `Alt+5` (Visual Studio), `⌘ 5` (Visual Studio (macOS)), `Alt+5` (NetBeans), `Alt+5` (Eclipse), `⌘ 5` (Eclipse (macOS))    * `查看 \| 工具窗口 \| 服务` 或 `Alt+8` (Windows), `⌘ 8` (macOS), `⌘ 8` (IntelliJ IDEA Classic (macOS)), `⌘ 8` (macOS System Shortcuts), `Alt+8` (XWin), `Alt+8` (GNOME), `Alt+8` (KDE), `Alt+8` (Emacs), `Alt+8` (Sublime Text), `⌘ 8` (Sublime Text (macOS)), `Alt+8` (Visual Studio), `Alt+8` (Visual Studio (macOS)), `Alt+8` (NetBeans), `Alt+8` (Eclipse), `⌘ 8` (Eclipse (macOS))    |
|     启动时使“运行/调试”工具窗口获得焦点     |  测试运行时，将焦点置于运行配置工具窗口。  |
|     启动前显示运行/调试配置设置     |  在实际启动运行配置之前显示其设置。  |

