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

Java重复指定堆参数时最终生效规则及官方文档查询

Java命令参数顺序生效规则说明

Java命令有固定的语法结构,参数位置有严格的划分:
java [JVM选项] 主类名/待运行的Java源文件名 [应用程序入参]

  • 只有放在主类/源文件名前面的参数,才会被识别为JVM参数,被虚拟机解析生效
  • 放在主类/源文件名后面的所有参数,都会被当成应用程序自身的入参,直接传递给main方法的String[] args数组,不会被JVM处理

你执行的命令里-Xms2G -Xmx6G放在了Sample.java之后,所以不会被JVM解析,只有前面的-Xms256m -Xmx1G会作为内存参数生效。

官方规则查询位置

该规则可以在Java官方的java命令工具参考文档中查询,对应文档的「命令语法」章节明确标注了JVM选项、主类/源文件、应用入参三者的位置顺序要求。

修正方案

如果要让更大的内存参数生效,调整参数顺序即可:
java -Xms2G -Xmx6G Sample.java
你也可以在main方法中打印args数组验证原命令的参数传递逻辑,原命令执行时,args数组会包含-Xms2G、-Xmx6G两个元素,可证明这部分参数被传递给了应用而非被JVM识别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 00:42:00