# 使用 IntelliJ IDEA 编译和构建应用程序

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

IntelliJ IDEA 编译和构建过程编译源文件，并结合外部库、属性文件和配置，生成一个有效的应用程序。 IntelliJ IDEA 使用的编译器遵循 Java 规范。

您可以编译单个文件，使用增量构建编译模块或项目，并从头开始重新构建项目。

如果您有一个纯 Java 或 Kotlin 项目，我们建议您使用 IntelliJ IDEA 来构建您的项目，因为 IntelliJ IDEA 支持增量构建，这显著加快了构建过程。

然而，如果构建脚本文件使用自定义插件或任务，IntelliJ IDEA 原生构建器可能无法正确构建 Gradle 或 Maven 项目。 在这种情况下，委托给 [Gradle](work-with-gradle-projects.html#delegate_build_actions) 或 [Maven](delegate-build-and-run-actions-to-maven.html#delegate_to_maven) 的构建可以帮助您正确构建项目。

Procedure: 编译单个文件或类

* 在编辑器中打开所需的文件并进入主菜单中的  `构建 | 重新编译 '类名称'`  ( `Ctrl+Shift+F9` (Windows), `⌘ ⇧ F9` (macOS), `⌘ ⇧ F9` (IntelliJ IDEA Classic (macOS)), `⌘ ⇧ F9` (macOS System Shortcuts), `Ctrl+Shift+F9` (XWin), `Ctrl+Shift+F9` (GNOME), `Ctrl+Shift+F9` (KDE), `Ctrl+Shift+F9` (Emacs), `Ctrl+B` (Sublime Text), `⌘ B` (Sublime Text (macOS)), `Ctrl+F7` (Visual Studio), `⌘ F7` (Visual Studio (macOS)), `F9` (NetBeans), `Ctrl+Shift+F9` (Eclipse), `⌘ ⇧ F9` (Eclipse (macOS)))。

或者，在   项目  工具窗口中，右键点击您需要的类，然后从上下文菜单中选择   重新编译 '类名称'  。

如果在编译过程中发生错误， IntelliJ IDEA 将会在 [审核编译和构建输出](#see-results)中显示这些错误以及警告信息。

## 更改编译输出位置

当您编译源代码时，IntelliJ IDEA 会自动创建一个包含已编译  `.class` 文件的输出目录。

![编译输出目录](https://resources.jetbrains.com.cn/help/img/idea/2026.3/compiler_output.png)

在输出目录中，IntelliJ IDEA 还会为您的每个模块创建子目录。

默认子目录路径如下：

* 源代码： `<ProjectFolder>/out/production/<ModuleName>`

* 测试： `<ProjectFolder>/out/test/<ModuleName>`

在项目级别，您可以更改输出路径的  `<ProjectFolder>/out` 部分。 如果您这样做（比如，指定一些  `<OutputFolder>`  而不是  `<ProjectFolder>/out` ），但不在模块级别重新定义路径，编译结果将会去  `<OutputFolder>/production/<ModuleName>`  和  `<OutputFolder>/test/<ModuleName>` 。

在模块级别，您可以为模块源代码和测试分别指定任何理想的编译输出位置。

Procedure: 指定编译输出文件夹

1. 打开   项目结构   对话框 (   文件 | 项目结构   `Ctrl+Alt+Shift+S` (Windows), `⌘ ;` (macOS), `⌘ ;` (IntelliJ IDEA Classic (macOS)), `⌘ ⇧ Comma` (macOS System Shortcuts), `Ctrl+Alt+Shift+S` (XWin), `Ctrl+Alt+Shift+S` (GNOME), `Ctrl+Alt+Shift+S` (KDE), `Ctrl+Alt+Shift+S` (Emacs), `Ctrl+Alt+Shift+S` (Sublime Text), `⌘ ;` (Sublime Text (macOS)), `Ctrl+Alt+Shift+S` (Visual Studio), `⌘ ;` (Visual Studio (macOS)), `Ctrl+Alt+Shift+S` (NetBeans), `Ctrl+Alt+Shift+S` (Eclipse), `⌘ ;` (Eclipse (macOS)))。

2. 在   项目设置  中，选择   项目  并在   项目编译器输出  字段中指定相应的路径。

![项目结构对话框 / 项目页面](https://resources.jetbrains.com.cn/help/img/idea/2026.3/project_compiler_output.png)

对于模块，请选择   模块  ，您需要的模块以及   路径  选项卡。 在   编译器输出   部分更改输出文件夹的位置。

![项目结构对话框 / 模块页面](https://resources.jetbrains.com.cn/help/img/idea/2026.3/module_compiler_output.png)

## 构建

当您执行   构建   ![“构建项目”图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.toolwindows.toolWindowBuild.svg)命令时，IntelliJ IDEA 会编译构建目标内的所有类，并将它们放置在输出目录中。

当您更改构建目标内的任何类然后执行构建操作时，IntelliJ IDEA 会执行增量构建，只编译更改的类。 IntelliJ IDEA 还会递归构建类的依赖关系。

Procedure: 构建模块或项目

* 选择您想要编译的模块或项目，然后转到  `构建 | 构建项目`  ( `Ctrl+F9` (Windows), `⌘ F9` (macOS), `⌘ F9` (IntelliJ IDEA Classic (macOS)), `⌘ ⌃ B` (macOS System Shortcuts), `Ctrl+F9` (XWin), `Ctrl+F9` (GNOME), `Ctrl+9` (KDE), `Ctrl+F9` (Emacs), `Ctrl+F9` (Sublime Text), `Ctrl+F9` (Sublime Text (macOS)), `F7` (Visual Studio), `F7` (Visual Studio (macOS)), `F11` (NetBeans), `Ctrl+F9` (Eclipse), `⌘ B` (Eclipse (macOS)))。

IntelliJ IDEA 在 [审核编译和构建输出](#see-results) 中显示编译结果。

如果您将模块依赖项添加到主模块并构建该模块，IntelliJ IDEA 也会构建依赖模块，并将其与主模块一起显示在输出目录中。 如果依赖模块有自己的模块依赖，那么 IntelliJ IDEA 将从最少依赖的模块开始递归编译所有依赖。

![项目结构对话框 / 模块页面](https://resources.jetbrains.com.cn/help/img/idea/2026.3/recursive_build.png)

模块依赖项的排序方式对于编译成功非常重要。 如果任何两个 JAR 文件包含相同名称的类，IntelliJ IDEA 编译器将使用其在类路径中首先找到的 JAR 文件中的类。

有关更多信息，请参见 [模块依赖项](working-with-module-dependencies.html)。

## 重新构建

当您执行重建命令时，IntelliJ IDEA 会清空整个输出目录，删除构建缓存并从头开始构建项目或模块。 当 classpath 条目发生更改时，这可能会有所帮助。 例如，项目使用的 SDK 或库被添加、删除或更改。

Procedure: 重新构建模块或项目

* 在主菜单中，前往  `构建 | 重新构建项目`  查找整个项目或  `构建 | 重新构建 '模块名称'`  查找模块重建。

IntelliJ IDEA 在 [审核编译和构建输出](#see-results) 中显示构建结果。

> **Note:**
> 当   重新构建项目   操作被委派给 [Gradle](work-with-gradle-projects.html#delegate_build_gradle) 或 [Maven](delegate-build-and-run-actions-to-maven.html#delegate_to_maven) 时，IntelliJ IDEA 在重建项目时不包含  `清理`  任务/目标。 如有需要，您可以在重建前使用 [Gradle](jetgradle-tool-window.html) 或 [Maven](maven-projects-tool-window.html) 工具窗口中的  `清理`  选项执行   在重新构建前执行   命令。

## 后台编译（自动构建）

您可以配置 IntelliJ IDEA，使其在每次更改项目时自动构建您的项目。 背景编译的结果显示在 [Problems 工具窗口](#see-results)中。

Procedure: 配置后台编译

1. 按 `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) 打开设置，然后选择  `生成、执行、部署 | 编译器` 。

2. 在   编译器  页面上，选择   自动构建项目  。

现在，当您在类文件中进行更改时，IntelliJ IDEA 会自动执行项目的增量构建。

自动构建也会在您保存文件（ `Ctrl+S` (Windows), `⌘ S` (macOS), `⌘ S` (IntelliJ IDEA Classic (macOS)), `⌘ S` (macOS System Shortcuts), `Ctrl+S` (XWin), `Ctrl+S` (GNOME), `Ctrl+S` (KDE), `Ctrl+X, Ctrl+S` (Emacs), `Ctrl+S` (Sublime Text), `⌘ S` (Sublime Text (macOS)), `Ctrl+Shift+S` (Visual Studio), `⌘ ⇧ S` (Visual Studio (macOS)), `Ctrl+S` (NetBeans), `Ctrl+S` (Eclipse), `⌘ S` (Eclipse (macOS))）时触发，或当您在 [系统设置](system-settings.html#sync)对话框中选择了   如果应用程序空闲 N 秒，则自动保存文件。  选项时触发。

> **Tip:**
> 启用   自动构建项目   选项也会启用 [构建项目](saving-and-reverting-changes.html#actions-on-save) 在  `设置 | 工具 | 保存时的操作`

> **Note:**
> 当您在项目中启用   节能模式   选项 (  `文件 | 节能模式` ) 时，自动构建操作将被禁用，您需要手动运行构建 ( `Ctrl+F9` (Windows), `⌘ F9` (macOS), `⌘ F9` (IntelliJ IDEA Classic (macOS)), `⌘ ⌃ B` (macOS System Shortcuts), `Ctrl+F9` (XWin), `Ctrl+F9` (GNOME), `Ctrl+9` (KDE), `Ctrl+F9` (Emacs), `Ctrl+F9` (Sublime Text), `Ctrl+F9` (Sublime Text (macOS)), `F7` (Visual Studio), `F7` (Visual Studio (macOS)), `F11` (NetBeans), `Ctrl+F9` (Eclipse), `⌘ B` (Eclipse (macOS)))。

## 运行前编译

默认情况下，当您运行应用程序时，IntelliJ IDEA [会编译](#compile_module)您尝试运行的类所在的模块。

如果您想更改此行为，您可以在 [Run/Debug Configurations](run-debug-configurations-dialog.html) 对话框中进行更改。

Procedure: 配置运行/调试配置

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

2. 在打开的对话框中，创建一个新的运行配置或打开一个现有的运行配置。

3. 点击   修改选项   链接。

4. 在   添加运行选项   列表中，在   启动前   部分下，选择   添加启动前任务  。 任务列表将变得可用，并且   构建   将被选中。 点击 ![关闭图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.closeSmall.svg) 以禁用它。

![运行/调试配置对话框：启动前](https://resources.jetbrains.com.cn/help/img/idea/2026.3/run_config_before_launch.png)

5. 如果您需要添加一个新的配置操作，请点击 !["添加"按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg)，并从打开的列表中选择所需的选项。

例如， 如果您选择   构建项目  ，那么 IntelliJ IDEA 将在运行之前构建整个项目。 在这种情况下，没有包含在   构建   操作中的依赖项将会被考虑在内。 如果您选择   构建，不进行错误检查   选项，IntelliJ IDEA 将在编译结果有错误的情况下运行应用程序。

![运行/调试配置：添加新配置。](https://resources.jetbrains.com.cn/help/img/idea/2026.3/add_configuration.png)

## 审核编译和构建输出

IntelliJ IDEA 会报告编译及构建结果，这些结果会显示在 [Build tool window](build-sync-tool-window.html)中，显示有关错误和警告的消息以及成功的编译步骤。

![IntelliJ IDEA 构建输出](https://resources.jetbrains.com.cn/help/img/idea/2026.3/buildOutputJava.png)

如果您配置了 [auto-build](#auto-build)，则 IntelliJ IDEA 使用问题工具窗口显示消息。 即使构建成功执行，该窗口也可用。 要打开它，请点击状态栏上的   自动构建  。

![问题工具窗口](https://resources.jetbrains.com.cn/help/img/idea/2026.3/problems_tool_window.png)

双击消息以跳转到源代码中的问题。 如需调整 [编译器设置](compiler.html)，请点击 ![编译器属性图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.settings.svg)。

## 将应用程序打包成 JAR

当代码编译完成并准备就绪后，可以将应用程序打包为 Java 归档 (JAR) 软件包，以便与其他开发者共享。 构建完成的 Java 归档称为  工件 。

Procedure: 为 JAR 创建工件配置

1. 在主菜单中，转到   文件 | 项目结构   `Ctrl+Alt+Shift+S` (Windows), `⌘ ;` (macOS), `⌘ ;` (IntelliJ IDEA Classic (macOS)), `⌘ ⇧ Comma` (macOS System Shortcuts), `Ctrl+Alt+Shift+S` (XWin), `Ctrl+Alt+Shift+S` (GNOME), `Ctrl+Alt+Shift+S` (KDE), `Ctrl+Alt+Shift+S` (Emacs), `Ctrl+Alt+Shift+S` (Sublime Text), `⌘ ;` (Sublime Text (macOS)), `Ctrl+Alt+Shift+S` (Visual Studio), `⌘ ;` (Visual Studio (macOS)), `Ctrl+Alt+Shift+S` (NetBeans), `Ctrl+Alt+Shift+S` (Eclipse), `⌘ ;` (Eclipse (macOS)) 并点击   构件  。

2. 请点击 !["添加"按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg)，指向   JAR  ，然后选择   从带有依赖项的模块  。

3. 在   主类   字段的右侧，点击 ![浏览按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.open.svg) 并在打开的对话框中选择主类（例如，   HelloWorld (com.example.helloworld)  ）。

IntelliJ IDEA 创建工件配置，并显示其在   项目结构   对话框右侧的设置。

4. 应用更改并关闭对话框。

![创建工件配置](https://resources.jetbrains.com.cn/help/img/idea/2026.3/manifest.animated.gif)

Procedure: 构建 JAR 工件

1. 在主菜单中，前往   构建 | 构建制品  。

2. 指向已创建的  `.jar` （   HelloWorld：jar  ）并选择   构建  。

如果您现在查看  `out/artifacts` 文件夹，您会在那里找到您的  `.jar` 文件。

![JAR 工件已构建](https://resources.jetbrains.com.cn/help/img/idea/2026.3/jt-jar-built.png)

当您构建一个项目时，存储在 [Resources root](content-roots.html#folder-categories)中的资源会默认复制到编译输出文件夹中。 如有必要，您可以在输出文件夹中 [指定另一个目录](content-roots.html#specify_output_path)来放置资源。

## 将其他文件添加到 JAR 工件

您可以将其他文件添加到 JAR artifact。 例如，您可以添加一些图像文件、配置文件和 JAR 文件。

Procedure: 将文件添加到JAR工件

1. 在主菜单中，转到   文件 | 项目结构   `Ctrl+Alt+Shift+S` (Windows), `⌘ ;` (macOS), `⌘ ;` (IntelliJ IDEA Classic (macOS)), `⌘ ⇧ Comma` (macOS System Shortcuts), `Ctrl+Alt+Shift+S` (XWin), `Ctrl+Alt+Shift+S` (GNOME), `Ctrl+Alt+Shift+S` (KDE), `Ctrl+Alt+Shift+S` (Emacs), `Ctrl+Alt+Shift+S` (Sublime Text), `⌘ ;` (Sublime Text (macOS)), `Ctrl+Alt+Shift+S` (Visual Studio), `⌘ ;` (Visual Studio (macOS)), `Ctrl+Alt+Shift+S` (NetBeans), `Ctrl+Alt+Shift+S` (Eclipse), `⌘ ;` (Eclipse (macOS)) 并点击   构件  。

2. 在   输出布局   下，点击 ![添加副本](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg)。

3. 在上下文菜单中，选择   文件  。

4. 在打开的对话框中，找到该文件，添加并点击   OK  。

5. 在主菜单中，前往   构建 | 构建制品  。

6. 指向创建的  `.jar` 并选择   构建  。

构建的 JAR 工件包含添加的文件。

## 运行已打包的 JAR

要运行打包为 JAR 的 Java 应用程序，IntelliJ IDEA 允许您创建专用的运行配置。

> **Note:**
> 如果您有一个 [Gradle](getting-started-with-gradle.html) 项目，请使用 Gradle 创建并运行 JAR 文件。
>
>
>
> 对于 Maven 项目，您可以使用 IntelliJ IDEA 运行 JAR 文件。 如果您有一个 Spring Boot Maven 项目，请参考 [Spring](your-first-spring-application.html) 部分。

Procedure: 创建运行配置

1. 按 `Ctrl+Shift+A` (Windows), `⌘ ⇧ A` (macOS), `⌘ ⇧ A` (IntelliJ IDEA Classic (macOS)), `⌘ ⇧ P` (macOS System Shortcuts), `Ctrl+Shift+A` (XWin), `Ctrl+Shift+A` (GNOME), `Ctrl+Shift+A` (KDE), `Escape, X` (Emacs), `Ctrl+Shift+P` (Sublime Text), `⌘ ⇧ P` (Sublime Text (macOS)), `Ctrl+Shift+A` (Visual Studio), `⌘ ⇧ A` (Visual Studio (macOS)), `Ctrl+I` (NetBeans), `Ctrl+Shift+A` (Eclipse), `⌘ 3` (Eclipse (macOS))，找到并运行   编辑配置   操作。

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

3. 为新的配置添加一个名称。

![创建新的运行配置](https://resources.jetbrains.com.cn/help/img/idea/2026.3/run-debug.animated.gif)

4. 在   JAR 路径   字段中，点击 ![浏览按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.open.svg) 并指定计算机上 JAR 文件的路径。

5. 在   启动前  下，点击 !["添加"按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg)，在打开的对话框中选择  `构建制品` 。

这意味着每次执行运行配置时，JAR 都会自动构建。

[Video](https://resources.jetbrains.com.cn/help/img/idea/2026.3/run-config-ending.mp4)

运行配置可用于定义应用程序的运行方式，以及使用哪些实参和选项。 同一应用程序可以有多个运行配置，每个配置都有自己的设置。

Procedure: 执行运行配置

* 在工具栏上，选择创建的配置，然后点击运行配置选择器右侧的 ![运行按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.actions.execute.svg)。 另一种方法是，按 `Shift+F10` (Windows), `⌃ R` (macOS), `⇧ F10` (IntelliJ IDEA Classic (macOS)), `⌥ ⇧ R` (macOS System Shortcuts), `Shift+F10` (XWin), `Shift+F10` (GNOME), `Shift+F10` (KDE), `Shift+F10` (Emacs), `Shift+F10` (Sublime Text), `Shift+F10` (Sublime Text (macOS)), `Ctrl+F5` (Visual Studio), `⌃ F5` (Visual Studio (macOS)), `F6` (NetBeans), `Alt+Shift+X` (Eclipse), `⌘ ⇧ F11` (Eclipse (macOS)) 如果您更喜欢快捷键。

和以前一样，   运行   工具窗口会打开并显示应用程序输出。

![运行打包应用程序](https://resources.jetbrains.com.cn/help/img/idea/2026.3/jt-run-jar.animated.gif)

如果进程已成功退出，则应用程序已正确打包。

## See also

### 过程

[配置注解处理器](annotation-processors-support.html) [Gradle build](work-with-gradle-projects.html#delegate_build_actions) [Maven build](delegate-build-and-run-actions-to-maven.html#delegate_to_maven)

