【问题标题】:Unrecognized VM option 'UseParNewGC' , Error: Could not create the Java Virtual Machine无法识别的 VM 选项“UseParNewGC”,错误:无法创建 Java 虚拟机
【发布时间】:2018-04-22 04:13:51
【问题描述】:

我正在尝试使用 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

【问题讨论】:

    标签: jvm java-10 jvm-crash


    【解决方案1】:

    此收集器在 JDK 9 中已弃用,并在 JDK 10 中删除。

    https://bugs.openjdk.java.net/browse/JDK-8151084

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

    【讨论】:

    • 标志被移除,但收集器没有被移除。 ParNew 是选择 CMS 时年轻代的默认收集器。
    【解决方案2】:

    作为彼得回答的后续行动,标志是

    -XX:+UseG1GC
    

    Oracle所述

    【讨论】:

    • 感谢您指出这一点,我确信我不是第一个提出这个话题的人。
    【解决方案3】:

    我在弹性搜索中遇到了同样的错误。所以最好的解决办法就是。

    运行

    sudo nano /usr/share/elasticsearch/bin/elasticsearch.in.sh
    

    并注释掉该 VM arg

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

    【讨论】:

    • 你的回答很有魅力。我还需要评论其他 ES_GC_OPTS 中的 if 块也
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

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

      设置 JAVA_PARAMETERS=-XX:+UseG1GC

      【讨论】:

        猜你喜欢
        • 2020-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-11
        • 2022-09-28
        • 2013-10-14
        • 2017-05-30
        • 1970-01-01
        相关资源
        最近更新 更多