运行 Java 应用程序
最后修改时间:2023 年 9 月 7 日本教程介绍如何快速运行 Java 应用程序。它还涵盖了运行 Java 应用程序所需的设置,例如创建新项目、配置 JDK 以及使用各种选项设置运行配置。
创建一个新项目
启动 IntelliJ IDEA。
如果欢迎屏幕打开,请单击“新建项目”。否则,从主菜单中选择文件| 新 | 项目。
从左侧列表中,选择“新建项目”。为新项目命名。
选择以下项目选项:
语言:Java
构建系统:Maven
添加示例代码:启用
从JDK列表中,选择最新的可用 Oracle OpenJDK 版本。
如果您的计算机上安装了 JDK,但未在 IDE 中定义,请选择“添加 JDK”并指定 JDK 主目录的路径。
如果您的计算机上没有必要的 JDK,请选择“下载 JDK”。
单击创建。
运行应用程序
创建项目后,在项目工具窗口 ( ) 中,找到src | 主要| 爪哇 | Main.java文件并在编辑器中打开它。Alt01
将现有代码替换为以下代码示例:
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); } }
在编辑器中,单击装订线图标来运行应用程序,然后选择Run 'Main.main()'。
IntelliJ IDEA 运行您的代码。之后,“运行”工具窗口将在屏幕底部打开。
应用程序已成功运行,这就是您将Process finished with exit code 0
在输出中看到该消息的原因。
当您单击Run时,IntelliJ IDEA 创建了一个以类命名的临时运行配置Main
。默认情况下,临时配置的数量限制为 5 个,因此当添加新配置时,旧配置会自动删除。这就是为什么保存您想要保留的临时配置是有意义的。
提示
您可以在设置 |中更改临时配置的最大数量。高级设置 | 运行/调试| 临时配置限制。
保存运行配置
转到“运行”| 编辑配置。
在左侧区域中,选择配置
Main
,然后单击上方工具栏上的图标。临时配置的图标是半透明的。因此,一旦保存配置,其图标就会变亮。
暂时不要关闭对话框。
提示
有关此运行/调试配置中的选项的完整列表,请参阅运行/调试配置:应用程序。
提示
启用“存储为项目文件”选项,将运行配置置于版本控制之下,并与其他项目贡献者共享。
将控制台输出保存到文件中
现在,让我们复制此配置并对其进行修改,以便 IDE 在您每次运行该配置时将控制台输出保存到文件中。如果您使用控制台输出进行日志记录,这可能很有用。
在左侧区域中,单击
Main
配置,然后单击工具栏上的 。这将创建运行配置的副本。
在右侧区域中,将配置重命名为
SaveConsoleOutput
.单击修改选项,然后从日志设置组中选择将控制台输出保存到文件。
指定 IDE 将写入输出的文件的路径。如果该文件不存在,则会自动创建。
在我们的例子中,我们将在项目目录中创建一个文件,因此我们指定的路径是
/Users/jetbrains/IdeaProjects/RunApplication/console.txt
.单击“应用”保存更改并关闭对话框。
运行保存的配置
确保
SaveConsoleOutput
在窗口标题的“运行”小部件中选中该选项,然后单击其旁边的按钮或按。ShiftF10当 IDE 完成运行配置后,在项目工具窗口中找到带有控制台输出的新文件,并确保它包含内容。
提示
如果您将日志存储在项目目录中,请将日志文件夹添加到.gitignore以避免通过 VCS 共享。您还可以将该文件夹标记为已排除,以将其从索引和搜索中排除。
运行配置允许您使用不同的参数运行相同的应用程序。现在您有两种配置,您可以根据需要进行选择。例如,如果您不需要每次运行应用程序时保存控制台输出,则可以运行Main
没有此设置的配置。
按或使用窗口标题中的“运行”小部件在配置之间切换:AltShiftF10
让我们看看另一个场景。
更改代码
想象一下我们的代码示例有问题。
在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());
在编辑器中,单击装订线图标来运行应用程序,然后选择Run 'Main.main()'。
应用程序挂起几秒钟,然后失败并显示OutOfMemoryError
。我们的程序声明了一个无限的整数流,然后尝试使用该方法将其转换为列表toList()
。由于流是无限的,该toList()
方法永远不会返回,程序将无限期地继续运行,消耗系统资源。
在这种情况下,我们可以添加一个 VM 选项,如果我们的应用程序失败并显示 .hprof 文件,该选项将为我们创建一个.hprofOutOfMemoryError
文件。稍后,我们将能够使用内置分析器详细分析该文件。
如果您不知道原因OutOfMemoryError
并想进一步调查,这很有用。
添加虚拟机选项
转到“运行”| 编辑配置。
在左侧区域中,单击
Main
配置,然后单击工具栏上的 复制配置。将配置重命名为
OutOfMemory
.打开“修改选项”列表,然后单击“添加 VM 选项”。
VM 选项字段出现在对话框中。在此字段中,添加以下选项,选项之间留有空格:
-Xmx512m -XX:+HeapDumpOnOutOfMemoryError
-XX:+HeapDumpOnOutOfMemoryError
创建.hprof文件,并-Xmx512m
限制转储的大小。单击“应用”保存更改并关闭对话框。
确保
OutOfMemory
在“运行”小部件中选择该配置,然后单击它旁边的 或按。ShiftF10
将打开“运行”工具窗口,显示OutOfMemoryError
已引发异常。由于我们已经配置了相应的 VM 选项,因此 IDE 已在您的项目目录中创建了一个.hprof文件。
提示
双击创建的.hprof文件以使用分析器对其进行分析。
感谢您的反馈意见!