Jvm 无法识别的VM选项';使用parnewgc',错误:无法创建Java虚拟机

Jvm 无法识别的VM选项';使用parnewgc',错误:无法创建Java虚拟机,jvm,java-10,jvm-crash,Jvm,Java 10,Jvm Crash,我正在尝试使用jre 10.0.1 64位启动服务器。windows开始批处理文件中JVM的设置有明显变化。如果将-XX:+UseParNewGC设置为错误的参考点,那么为了使JVM服务器以java 10启动,与我所展示的java 8设置相比,需要将其更改为什么 导致错误引用的代码行是: set JAVA_PARAMETERS=-XX:+UseParNewGC -XX:+CMSIncrementalPacing -XX:+CMSClassUnloadingEnabled -XX:Parallel

我正在尝试使用jre 10.0.1 64位启动服务器。windows开始批处理文件中JVM的设置有明显变化。如果将
-XX:+UseParNewGC
设置为错误的参考点,那么为了使JVM服务器以java 10启动,与我所展示的java 8设置相比,需要将其更改为什么

导致错误引用的代码行是:

set JAVA_PARAMETERS=-XX:+UseParNewGC -XX:+CMSIncrementalPacing -XX:+CMSClassUnloadingEnabled -XX:ParallelGCThreads=2 -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10

此收集器在JDK 9中被弃用,在JDK 10中被删除


新的默认设置是G1收集器,我建议您看看它是否适合您的需要。

继Peter的回答之后,标志是

-XX:+UseG1GC

所述,我在elasticsearch中得到了相同的错误。因此,解决这一问题的最佳方法是

并注释掉该VM arg

#ES_GC_OPTS="$ES_GC_OPTS -XX:+UseParNewGC"

如果您确实想使用CMS,请使用
-XX:+useConMarkSweepGC

通过运行下面的命令,我遇到了相同的问题,它得到了解决


set JAVA_PARAMETERS=-XX:+UseG1GC

已删除标志,但未删除收集器。选择CMS时,ParNew是年轻一代的默认收藏家。感谢你指出这一点,我相信我不是第一个提出这个话题的人。你的回答很有魅力。我还需要对if块中的其他ES_GC_选项进行注释
#ES_GC_OPTS="$ES_GC_OPTS -XX:+UseParNewGC"