You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Maven Spring Boot Plugin运行应用时如何正确设置Java Xmx参数?

解决Spring Boot Maven插件3.1.4设置Xmx参数不生效的问题

问题诊断

你使用mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xmx512m"设置JVM最大内存未生效,Runtime.getRuntime().maxMemory()始终返回2GB(8G内存的默认1/4),核心原因通常是命令行参数格式错误或插件fork模式配置冲突。

解决方案

情况1:插件默认fork模式(未配置<fork>false)

Spring Boot Maven插件3.x默认会fork独立JVM运行应用,此时需根据操作系统调整命令行引号格式:

  • Linux/macOS:
    单个参数可直接省略引号,多参数用引号包裹:
    # 单个参数
    mvn spring-boot:run -Dspring-boot.run.jvmArguments=-Xmx512m
    # 多个参数示例
    mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xmx512m -Xms256m"
    
  • Windows CMD:
    需将整个-D参数用双引号包裹:
    mvn spring-boot:run "-Dspring-boot.run.jvmArguments=-Xmx512m"
    
  • Windows PowerShell:
    使用单引号包裹JVM参数:
    mvn spring-boot:run -Dspring-boot.run.jvmArguments='-Xmx512m'
    

情况2:插件配置了<fork>false

若你的pom.xml中显式设置了<fork>false</fork>,应用会和Maven共用同一个JVM,此时spring-boot.run.jvmArguments参数无效,需通过MAVEN_OPTS环境变量设置:

  • Linux/macOS:
    export MAVEN_OPTS="-Xmx512m" && mvn spring-boot:run
    
  • Windows CMD:
    set MAVEN_OPTS=-Xmx512m && mvn spring-boot:run
    
  • Windows PowerShell:
    $env:MAVEN_OPTS="-Xmx512m"; mvn spring-boot:run
    

验证生效

执行命令后,可通过两种方式确认参数生效:

  1. 在应用中打印Runtime.getRuntime().maxMemory(),512MB对应的数值为536870912
  2. 使用jps -v命令查看应用进程,确认输出中包含-Xmx512m参数

内容的提问来源于stack exchange,提问作者morpheus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 14:22:46