IDEA中如何设置JVM启动参数

IDEA中如何设置JVM启动参数

在 IntelliJ IDEA 中设置 JVM 启动参数(适用于运行/调试应用程序)有以下几种场景:


1. 为当前项目设置 JVM 运行参数

适用场景 :为应用程序的主类或测试配置运行时 JVM 参数(如 -Xmx, -Dproperty=value 等)。

步骤

  1. 打开 运行/调试配置

    • 点击工具栏右侧的 Edit Configurations(或通过菜单 Run > Edit Configurations)。
  2. 选择你的配置(如 ApplicationSpring Boot 等)。

  3. VM options 字段中输入参数(示例):

    plaintext 复制代码
    -Xmx512m -Dspring.profiles.active=dev -XX:+HeapDumpOnOutOfMemoryError
  4. 点击 ApplyOK 保存。


2. 为 IDEA 本身设置 JVM 参数

适用场景:调整 IDEA 运行时的内存(如解决 IDE 卡顿)。

步骤

  1. 找到 IDEA 的配置文件:

    • Windows<IDEA安装目录>/bin/idea64.exe.vmoptions
    • macOS/Linux~/Library/Application Support/JetBrains/<IDEA版本>/idea.vmoptions/usr/local/idea/bin/idea.vmoptions
  2. 修改文件(示例):

    plaintext 复制代码
    -Xms512m
    -Xmx2048m
    -XX:ReservedCodeCacheSize=512m
  3. 重启 IDEA 生效。

注意 :部分版本可通过界面修改(Help > Change Memory Settings)。


3. 为 Gradle/Maven 设置 JVM 参数

Gradle

gradle.properties 中配置:

properties 复制代码
org.gradle.jvmargs=-Xmx2g -Dfile.encoding=UTF-8
Maven

pom.xml 中配置:

xml 复制代码
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <argLine>-Xmx512m</argLine>
    </configuration>
</plugin>

4. 环境变量与系统属性

  • 系统属性-D 参数):通过 VM options 设置(如 -Dkey=value)。
  • 环境变量 :在 Edit ConfigurationsEnvironment variables 字段中添加。

常见参数示例

plaintext 复制代码
# 内存设置
-Xms256m -Xmx1024m -XX:MaxMetaspaceSize=512m

# 调试参数
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

# 系统属性
-Duser.timezone=GMT+8 -Dlogging.level.root=DEBUG

验证参数是否生效

在代码中打印参数:

java 复制代码
public class JvmArgs {
    public static void main(String[] args) {
        System.out.println("Max memory: " + Runtime.getRuntime().maxMemory() / 1024 / 1024 + "MB");
        System.out.println("Timezone: " + System.getProperty("user.timezone"));
    }
}
相关推荐
阿维的博客日记8 分钟前
Hippo4j 线程池监控平台部署手册
java·spring boot·后端
C+++Python2 小时前
详细介绍一下Java泛型的通配符
java·windows·python
JosieBook3 小时前
【数据库】时序预测能力的分级进化:TimechoAI如何让每一类用户都能精准预见未来
java·开发语言·数据库
一生了无挂4 小时前
Java处理JSON技巧教学(从基础到高阶实战全覆盖)
java·开发语言·json
李白的天不白4 小时前
使用 SmartAdmin 进行前后端开发
java·前端
swordbob4 小时前
Spring 单例 Bean 是线程安全的吗?
java·开发语言
2601_951643775 小时前
Python第一,Java跌出前三,C语言杀回来了
java·c语言·python·编程语言排行·技术趋势
IT 行者7 小时前
GitHub Spec Kit 实战(五):/speckit.tasks 怎么拆——Spec Kit 五部曲收官
java·ai编程·claude
(Charon)7 小时前
【C++ 面试高频基础:指针、引用、const、static、new/delete 总结】
java·开发语言
Yeats_Liao8 小时前
Feed流系统设计(三):数据模型与存储设计,从表结构到Redis收件箱
java·javascript·redis