在 IntelliJ IDEA 中,VM Options(虚拟机选项) 是用来配置 JVM(Java 虚拟机)启动参数的,比如设置堆内存大小(-Xmx、-Xms)、垃圾回收器、编码格式、系统属性(-D 参数)等。这些参数通常用于调试、性能调优、指定运行环境等场景。
![图片[1]_idea中VM options配置方式_知途无界](https://zhituwujie.com/wp-content/uploads/2025/10/d2b5ca33bd20251016115839.png)
下面详细介绍在 IDEA 中如何配置 VM Options,包括 不同场景下的配置方式(如 Application、JUnit、Maven、Gradle 等)。
一、在 Run/Debug Configurations 中配置 VM Options(最常用)
这是为你的 Java 应用程序(main 方法启动类)设置 JVM 参数的最常见方式。
步骤:
- 打开运行/调试配置窗口
- 方式一:点击工具栏右上角的运行配置下拉框 → 选择 Edit Configurations…
- 方式二:菜单栏 Run → Edit Configurations…
- 选择你要运行的 Application 配置
- 在左侧列表中找到你要运行的应用程序配置(通常是某个 main 类)。
- 如果没有,可以点击左上角 + 号 → 选择 Application 来新建一个。
- 找到 VM options 输入框
- 在右侧配置面板中,找到 VM options 输入框(一般位于 “Configuration” 标签页中)。
- 示例:
-Xms512m -Xmx2048m -Dfile.encoding=UTF-8 -Dspring.profiles.active=dev - 你可以在这里填写任何合法的 JVM 启动参数。
- 应用并运行
- 点击 Apply → OK
- 然后正常运行你的程序(点击运行或调试按钮),JVM 就会使用你设置的参数。
二、VM Options 常见参数示例
| 参数 | 说明 |
|---|---|
-Xms512m | 初始堆内存大小为 512MB |
-Xmx2048m | 最大堆内存大小为 2048MB |
-Xmn256m | 年轻代大小 |
-XX:MaxMetaspaceSize=256m | 元空间最大大小 |
-Dfile.encoding=UTF-8 | 设置 JVM 默认文件编码为 UTF-8 |
-Dspring.profiles.active=dev | 设置 Spring Boot 的运行环境为 dev |
-ea | 启用断言(Assertions) |
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 | 用于远程调试 |
提示:多个参数之间用 空格 分隔。
三、其他场景下的 VM Options 配置
除了普通的 Java Application,你可能还会在其他场景下需要配置 VM Options,比如:
1. JUnit 测试
如果你希望在运行 JUnit 测试时使用特定的 JVM 参数:
- 打开 Run/Debug Configurations
- 选择左侧的 JUnit 配置(或新建一个)
- 在右侧找到 VM options 输入框,填入你需要的参数,如:
-Dtest.env=unittest -Xmx1024m - 应用并运行测试
适用于:使用 JUnit 运行测试时,需要加载特定系统属性或限制内存等。
2. Maven 命令(如 mvn spring-boot:run)
如果你是在 IDEA 中通过 Maven 插件运行项目(比如 mvn spring-boot:run),想为 Maven 的 JVM 进程设置参数,不是为你的应用设置参数,那么应该配置的是:
为 Maven Runner 设置 VM Options(即 Maven 命令执行的 JVM 参数)
- 打开 File → Settings → Build, Execution, Deployment → Build Tools → Maven → Runner
- 在右侧找到 VM Options 输入框
- 填入你需要的 JVM 参数,例如:
-Xms512m -Xmx2048m -Dfile.encoding=UTF-8 - 点击 Apply / OK
⚠️ 注意:这里配置的是 运行 Maven 命令的 JVM 参数,比如执行
mvn clean install或mvn spring-boot:run的那个 JVM,不是你的应用程序的 JVM 参数。
为 Maven 应用程序本身设置 VM Options(比如 spring-boot:run 时传给应用的参数)
如果你使用的是 mvn spring-boot:run,并且想要为 你的 Spring Boot 应用 设置 JVM 参数(而不是 Maven 进程),那么:
- 打开 Run/Debug Configurations
- 选择你的 Maven 配置(比如
spring-boot:run) - 在 Command line 中添加:
spring-boot:run -Dspring-boot.run.jvmArguments="-Xms512m -Xmx2048m -Dprofile=dev"或者直接在 Runner 标签页中找到 VM Options for Runner(不同版本可能位置略有不同,或使用spring-boot.run.jvmArguments属性)
推荐使用
spring-boot.run.jvmArguments参数来为 Spring Boot 应用指定 JVM 参数,例如:-Dspring-boot.run.jvmArguments="-Xmx1024m -Dspring.profiles.active=dev"
3. Gradle 项目中的 VM Options
如果你使用 Gradle 运行任务(比如 bootRun),想要设置 JVM 参数:
方法一:通过 bootRun 任务的 JVM 参数配置
在 build.gradle 中为 bootRun 配置 JVM 参数:
bootRun {
jvmArgs = [
"-Xms512m",
"-Xmx2048m",
"-Dspring.profiles.active=dev",
"-Dfile.encoding=UTF-8"
]
}
然后在 IDEA 中运行 bootRun 任务即可。
方法二:在 IDEA 的 Gradle 配置中设置
- 打开 Run/Debug Configurations
- 选择你的 Gradle 任务(比如
bootRun) - 在 Arguments 或 VM options 相关区域配置(不同 IDEA 版本可能稍有差异)
- 或者直接在 Gradle 配置文件中指定(推荐)
推荐直接在
build.gradle中为bootRun配置jvmArgs,这样配置可版本控制且清晰。
四、总结对比表
| 场景 | 配置位置 | 配置项名称 | 说明 |
|---|---|---|---|
| 普通 Java Application(main 方法) | Run/Debug Configurations → Application → VM options | VM options | 为你的 Java 应用程序设置 JVM 参数,最常用 |
| JUnit 测试 | Run/Debug Configurations → JUnit → VM options | VM options | 为测试代码的运行 JVM 设置参数 |
| Maven 命令(如 mvn install) | Settings → Build Tools → Maven → Runner → VM Options | VM Options | 为 Maven 命令执行的 JVM 设置参数,不是你的应用 |
| Maven Spring Boot 应用(mvn spring-boot:run) | Run/Debug Configurations → Maven → Command line 或使用 spring-boot.run.jvmArguments | spring-boot.run.jvmArguments | 为 Spring Boot 应用设置 JVM 参数 |
| Gradle 项目(如 bootRun) | build.gradle 中 bootRun { jvmArgs […] } 或 Run/Debug Configurations | jvmArgs | 为 Gradle 任务设置 JVM 参数,推荐写在 build.gradle |
五、附加提示
- 区分 JVM 参数 与 程序参数(Program arguments)
- VM Options(JVM 参数):是给 JVM 用的,比如内存设置、编码、系统属性等,格式如
-Xmx512m、-Dkey=value - Program arguments(程序参数):是给你的 Java 程序 main(String[] args) 方法传的参数,比如
arg1 arg2,是在 VM Options 下方的 Program arguments 输入框中填写
- VM Options(JVM 参数):是给 JVM 用的,比如内存设置、编码、系统属性等,格式如
- 查看当前生效的 JVM 参数
- 你可以在 Java 程序中通过以下代码打印所有系统属性和 JVM 参数:
System.out.println("----- JVM 参数 -----"); RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean(); List<String> arguments = runtimeMxBean.getInputArguments(); arguments.forEach(System.out::println); System.out.println("----- 系统属性 -----"); System.getProperties().forEach((k, v) -> System.out.println(k + " = " + v));
- 你可以在 Java 程序中通过以下代码打印所有系统属性和 JVM 参数:
✅ 总结
| 你要配置谁的 JVM 参数? | 配置位置 | 关键词 |
|---|---|---|
| 我的 Java 应用程序(带 main() 方法) | Run/Debug Configurations → Application → VM options | 最常用 |
| 我的 JUnit 测试代码 | Run/Debug Configurations → JUnit → VM options | 测试环境 |
| Maven 命令执行时的 JVM | Settings → Maven → Runner → VM Options | Maven 自身 |
| Maven 运行 Spring Boot 应用时给应用设置 JVM | Run Configuration 中的 spring-boot.run.jvmArguments | spring-boot:run |
| Gradle 任务(如 bootRun)的 JVM 参数 | build.gradle → bootRun { jvmArgs } 或 Gradle 配置 | Gradle 构建工具 |
如你具体是在哪种场景下需要配置 VM Options,可以进一步告诉我,我可以给出更精确的配置指导!

























暂无评论内容