Unrecognized VM option ‘ExplicitGCInvokesConcurrentAndUnloadsClasses‘

项目场景:

开发环境使用的是jdk8,而生产环境应为其他项目需求,调整OpenJDK版本为OpenJDK11,启动配置如下

#JAVA GC PRINT
-XX:+PrintGCDetails 
-XX:+PrintGCDateStamps 
-XX:+PrintGCApplicationConcurrentTime 
-XX:+PrintHeapAtGC 
-XX:+UseGCLogFileRotation 
-XX:+HeapDumpOn0utOfMemoryError 
-Xloggc:$LOG DIR/gc.log 
-XX:NumberofGCLogFiles=5 
-XX:GCLogFileSize=5M 
-XX:HeapDumpPath=$LOG DIR/HeapDumpOnOutOfMemoryError/"
#JAVA VM  -Xmn2g 
-server -D64 
-Xmx512M
-Xms512M 
-XX:SurvivorRatio=8
-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses 
-XX:+UseConcMarkSweepGC 
-XX:+UseParNewGC
-XX:ParallelCMSThreads=4 
-XX:+CMSClassUnloadingEnabled
-XX:+UseCMSCompactAtFul.Collection
-XX:CMSFulIGCsBeforeCompaction=1
-XX:CMSInitiating0ccupancyFraction=72 
-XX:+UseCMSInitiatingOccupancyOnly

问题描述

Unrecognized VM option 'ExplicitGCInvokesConcurrentAndUnloadsClassesDid you mean '(+/-)ExplicitGCInvokesConcurrent'? Error: Could not create the Java Virtual Machine.

原因分析:

CMS 垃圾回收器于 JDK1.5 时期推出,在 JDK9 中被废弃,在 JDK14 中被移除。 而用来替换 CMS 垃圾回收器的便是我们常说的 G1 垃圾回收器。


解决方案:

  1. 更换OpenJDK版本为JDK9以下
  2. 调整启动配置GC参数,调整VM配置
//修改日志输出参数JAVA_GC_PRINT
LOG_DIR=./logs
-Xlog:gc -Xlog:gc:file=$LOG DIR/gc.log

// JAVA_VM
-server -D64 
-Xmx512M 
-Xms512M 
-XX:MaxDirectMemorysize=256m 
-XX:+UseG1GC 
-XX:+UseCompressedOops 
-XX:+UseCompressedClassPointers 
-XX:+SegmentedcodeCache 
-verbose:gc 
-XX:+PrintCommandLineFlags 
-XX:+ExplicitGCInvokesConcurrent

附:CMS垃圾回收的JVM原理分析与性能调优
官网JDK11配置

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从小看天书

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值