-
教程:运行 Java 应用程序
2025-05-16 00:51:29 1958世界杯
教程:运行 Java 应用程序本教程解释了如何运行 Java 应用程序、使用运行/调试配置、将程序输出保存到文件以及添加自定义 VM 选项。 它还涵盖了运行 Java 应用程序所需的设置,例如创建新项目和配置 JDK。
创建一个新项目启动 IntelliJ IDEA。
如果欢迎屏幕打开,请点击 新建项目。 否则,请转到主菜单中的 文件 | 新建 | 项目。
从左侧列表中选择 Java。 为项目命名。
选择 Maven 作为 构建系统 并勾选 添加示例代码。
从 JDK 列表中,选择最新可用的 Oracle OpenJDK 版本。
如果 JDK 已安装在您的计算机上,但未在 IDE 中定义,请选择 添加 JDK 并指定 JDK 主目录的路径。
如果您的计算机上没有必要的 JDK,请选择 下载JDK。
点击 创建。
运行应用程序项目创建后,在 项目 工具窗口(Alt+1 )中找到 src | main | java | Main.java 文件,并在编辑器中打开。
将现有代码替换为以下代码示例:
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);
}
}
在编辑器中,点击 图标运行应用程序并选择 运行 'Main.main()'。
IntelliJ IDEA 运行您的代码并在屏幕底部的 运行 工具窗口中显示其输出。 应用程序已成功运行,因此您将在输出中看到 Process finished with exit code 0 消息。
当您点击 运行 时,IntelliJ IDEA 创建了一个临时的 运行配置 ,命名为 Main 类。 它定义了运行应用程序的入口点和参数。 到目前为止,我们尚未使用任何启动参数,但稍后会添加。
默认情况下,临时配置数量限制为 5 个,所以在添加新配置时,旧配置会被自动删除。 这就是为什么保存您想要保留的临时配置是有意义的。
您可以更改 设置 | 高级设置 | 运行/调试 | 临时配置限制 中临时配置的最大数量。
保存运行配置在主菜单中,前往 运行 | 编辑配置。
在左侧区域,选择 Main 配置并点击上方工具栏中的 图标。 不要关闭对话框。
临时配置的图标是透明的。 保存后, Main 的图标变为实心。
启用 存储为项目文件 选项以将运行配置置于 版本控制之下,并与其他项目贡献者共享。
将控制台输出保存到文件现在让我们复制此配置并予以修改,以便 IDE 每次运行该配置时将控制台输出保存到文件中。 如果您使用控制台输出进行日志记录,这可能会很有用。
在左侧区域,选择 Main 配置并点击工具栏上的 。 这将创建运行配置的副本。
在右侧区域,将配置重命名为 SaveConsoleOutput。
点击 修改选项(M) 并从 日志 设置组中选择 将控制台输出保存到文件(S)。 新的 将控制台输出保存到文件(S) 字段会出现在对话框中。
指定 IDE 将写入输出的文件的路径。 如果文件不存在,则会自动创建。
在我们的示例中,我们将在项目目录中创建一个文件,因此根据您的操作系统和用户名,路径将如下所示: /Users/me.user/IdeaProjects/RunApplication/console.txt。
应用更改并关闭对话框。
运行已保存的配置在窗口标题的 运行小部件 中选择 SaveConsoleOutput ,并点击旁边的 或按 Shift+F10。
当 IDE 完成运行配置后,在 项目 工具窗口中找到带有控制台输出的新文件,并确保应用程序的输出在那里。
如果您将日志存储在项目目录中,请将日志文件夹添加到 .gitignore中,以避免通过 VCS 共享。 您还可以将文件夹标记为 排除 ,以把它从索引和搜索中排除。
运行配置允许您使用不同的参数运行相同的应用程序。 现在您有了两种配置,您可以根据需要进行选择。 例如,如果您每次运行应用程序时都不需要保存控制台输出,您可以运行没有此设置的 Main 配置。
按 Alt+Shift+F10 或使用窗口顶部的运行小部件在配置之间切换:
让我们来看看另一种情况。
更改代码想象一下,我们的代码示例有一个问题。
在 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());
在编辑器中,点击 图标运行应用程序并选择 运行 'Main.main()'。
应用程序运行了几秒钟,然后因 OutOfMemoryError 失败。 我们的程序创建了一个无限整数流,然后尝试使用 toList() 方法将其收集到列表中。 由于流是无限的, toList() 方法将永远不会返回,程序将持续消耗内存直到失败。
如果应用程序因 OutOfMemoryError 失败,我们可以添加一个 VM 选项,在崩溃前将内存转储到 .hprof 文件中。 稍后,我们将能够使用内置的 profiler 对此文件进行详细分析。
添加虚拟机选项在主菜单中,前往 运行 | 编辑配置。
在左侧区域,点击 Main 配置,然后点击工具栏上的 以克隆配置。 将新配置重命名为 OutOfMemory。
打开 修改选项 列表并点击 添加 VM 选项。
对话框中会出现 虚拟机选项 字段。 在该字段中,添加以下选项,并用空格隔开:
-Xmx512m -XX:+HeapDumpOnOutOfMemoryError
-XX:+HeapDumpOnOutOfMemoryError 指定如果应用因 OutOfMemoryError 崩溃,应创建堆转储, -Xmx512m 设置堆的大小为 512 MB,以便堆转储不会太大。
应用更改并关闭对话框。
在 运行小部件 中选择 OutOfMemory ,并点击旁边的 或按 Shift+F10。
运行 工具窗口打开,向您展示 OutOfMemoryError 异常已被抛出。 由于我们已配置相应的 VM 选项,IDE 已在您的项目目录中创建了一个 .hprof 文件。
双击创建的 .hprof 文件以使用 profiler 分析它。
最后修改日期: 2025年 4月 24日运行/调试配置模板列表运行复合任务