Windows系统下为所有用户设置Java堆大小配置不生效问题咨询
配置核心错误点
- 参数重复覆盖:
deployment.javaws.jre.0.args是单值配置项,重复定义会导致只有最后一行生效,所有JVM参数需要合并写在同一行 - 参数大小写错误:JVM参数大小写敏感,你写的
-xms/-xmx/-xmn格式错误,正确写法为大写开头的-Xms/-Xmx/-Xmn - 堆配置超出32位JRE上限:32位Java 8在Windows系统上最大可用堆仅为1.5G~2G,你配置的
-Xmx3072M远超出上限,会被JVM直接忽略 - 校验方式错误:
javaw -XX:+PrintFlagsFinal读取的是JRE默认全局参数,而deployment.properties中的配置仅对Java Web Start启动的应用生效,直接调用javaw不会加载该配置
正确配置步骤
- 首先确认
C:\Windows\Sun\Java\Deployment目录下存在deployment.config文件,写入以下内容,保证系统级配置对所有用户生效,你遇到的Java控制面板系统标签灰化就是该配置的正常效果,符合统一管控需求:
deployment.system.config=file\:C\:/Windows/Sun/Java/Deployment/deployment.properties deployment.system.config.mandatory=true
- 修改同目录下的
deployment.properties文件,删除之前重复的三行参数,替换为如下配置,32位JRE的-Xmx建议不要超过1800M,避免系统地址空间不足导致参数失效:
deployment.javaws.jre.0.args=-Xms1024M -Xmx1800M -Xmn512M
- 如果你需要让所有Java进程(不限于Java Web Start启动的应用)都生效,可新增系统环境变量
_JAVA_OPTIONS,值为-Xms1024M -Xmx1800M -Xmn512M,该配置优先级更高,用javaw -XX:+PrintFlagsFinal命令校验也可以读取到对应参数。
内容的提问来源于stack exchange,提问作者S.Mahmood
相关产品推荐
相关产品推荐

