IntelliJ IDEA 2025.3 Help

教程:运行 Java 应用程序

本教程解释了如何运行 Java 应用程序、使用运行/调试配置、将程序输出保存到文件以及添加自定义 VM 选项。 它还涵盖了运行 Java 应用程序所需的设置,例如创建新项目和配置 JDK。

创建一个新的项目

  1. 启动 IntelliJ IDEA。

    如果打开欢迎屏幕,请点击 新建项目。 否则,请在主菜单中转到 文件 | 新建 | 项目。

  2. 在左侧列表中,选择 Java。 为项目命名。

  3. 选择 Maven 作为 构建系统 ,并勾选 添加示例代码。

  4. 从 JDK 列表中,选择最新可用的 Oracle OpenJDK 版本。

    如果 JDK 已安装在您的计算机上,但未在 IDE 中定义,请选择 添加 JDK 并指定 JDK 主目录的路径。

    如果您的计算机上没有必要的 JDK,请选择 下载JDK。

  5. 点击 创建。

创建新项目

运行应用程序

  1. 项目创建后,在 项目 工具窗口(Alt+1 )中找到 src | main | java | Main.java 文件,并在编辑器中打开。

  2. 将现有代码替换为以下代码示例:

    package org.example; import java.util.stream.Stream; public class Main { public static void main(String[] args) { Stream.iterate(1, i -> i + 1) .limit(10) .forEach(System.out::println); } }
  3. 在编辑器中,点击 边栏图标以运行应用程序,并选择 运行 'Main.main()'。

    运行应用程序

IntelliJ IDEA 运行您的代码并在屏幕底部的 运行 工具窗口中显示其输出。 应用程序已成功运行,因此您将在输出中看到 Process finished with exit code 0 消息。

应用程序已编译

当您点击 运行 时,IntelliJ IDEA 创建了一个临时的 运行配置 ,命名为 Main 类。 它定义了运行应用程序的入口点和参数。 到目前为止,我们尚未使用任何启动参数,但稍后会添加它们。

默认情况下,临时配置数量限制为 5 个,所以在添加新配置时,旧配置会被自动删除。 这就是为什么保存您想要保留的临时配置是有意义的。

保存运行配置

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

  2. 在左侧区域,选择 Main 配置并点击工具栏上的 保存配置 图标。 不要关闭对话框。

    临时配置的图标是透明的。 保存后, Main 的图标变为实心。

保存运行配置

将控制台输出保存到文件

现在让我们复制此配置并予以修改,以便 IDE 每次运行该配置时将控制台输出保存到文件中。 如果您使用控制台输出进行日志记录,这可能会很有用。

  1. 在左侧区域,选择 Main 配置并点击工具栏上的 。 这将创建运行配置的副本。

  2. 在右侧区域,将配置重命名为 SaveConsoleOutput。

  3. 点击 修改选项(M) 并从 日志 设置组中选择 将控制台输出保存到文件(S)。 新的 将控制台输出保存到文件(S) 字段会出现在对话框中。

  4. 指定 IDE 将写入输出的文件的路径。 如果文件不存在,则会自动创建。

    在我们的示例中,我们将在项目目录中创建一个文件,因此根据您的操作系统和用户名,路径将如下所示: /Users/me.user/IdeaProjects/RunApplication/console.txt。

    将控制台输出保存到文件
  5. 应用更改并关闭对话框。

运行已保存的配置

  1. 在窗口标题的 运行小部件中选择 SaveConsoleOutput ,并点击旁边的 或按 Shift+F10。

    运行配置
  2. 当 IDE 完成运行配置后,在 项目 工具窗口中找到带有控制台输出的新文件,并确保应用程序的输出在那里。

控制台输出已保存到文件

运行配置允许您使用不同的参数运行相同的应用程序。 现在您有了两种配置,您可以根据需要进行选择。 例如,如果您每次运行应用程序时都不需要保存控制台输出,您可以运行没有此设置的 Main 配置。

按 Alt+Shift+F10 或使用窗口顶部的运行小部件在配置之间切换:

运行小部件切换器

让我们来看看另一种情况。

更改代码

想象一下,我们的代码示例有一个问题。

  1. 在 Main.java 文件中,删除:

    Stream.iterate(1, i -> i + 1) .limit(10) .forEach(System.out::println);

    相反,粘贴以下代码:

    var list = Stream.iterate(1, i -> i + 1) .toList(); System.out.println(list.size());
  2. 在编辑器中,点击 边栏图标以运行应用程序,并选择 运行 'Main.main()'。

应用程序运行了几秒钟,然后因 OutOfMemoryError 失败。 我们的程序创建了一个无限整数流,然后尝试使用 toList() 方法将其收集到列表中。 由于流是无限的, toList() 方法将永远不会返回,程序将继续消耗内存直到失败。

应用程序因 OutOfMemoryError 失败

如果应用程序因 OutOfMemoryError 失败,我们可以添加一个 VM 选项,在崩溃前将内存转储到 .hprof 文件中。 稍后,我们将能够使用内置的 profiler 对此文件进行详细分析。

添加虚拟机选项

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

  2. 在左侧区域,点击 Main 配置,然后点击工具栏上的 以克隆配置。 将新配置重命名为 OutOfMemory。

  3. 打开 修改选项 列表并点击 添加 VM 选项。

  4. 对话框中会出现 VM 选项 字段。 在该字段中,添加以下选项,并用空格隔开:

    -Xmx512m -XX:+HeapDumpOnOutOfMemoryError

    应用程序因 OutOfMemoryError 失败

    -XX:+HeapDumpOnOutOfMemoryError 指定如果应用因 OutOfMemoryError 崩溃,应创建堆转储, -Xmx512m 设置堆的大小为 512 MB,以便堆转储不会太大。

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

  6. 在 运行小部件中选择 OutOfMemory ,并点击旁边的 或按 Shift+F10。

运行 工具窗口打开,向您展示 OutOfMemoryError 异常已被抛出。 由于我们已配置相应的 VM 选项,IDE 已在您的项目目录中创建了一个 .hprof 文件。

已创建 .hprof 文件
2026年 1月 23日