Skip to content

[Bug]: Java 26 使用 ZGC 预设时启动 Minecraft 失败 #212

Description

@BegoniaHe

前置确认

  • 我理解 Issue 是用于反馈和解决问题的,而非吐槽评论区,将尽可能提供更多信息帮助问题解决
  • 我未仔细阅读这些内容,只是一键已读所有内容,并相信这不会影响问题的处理
  • 我填写了简短且清晰明确的标题,以便开发者在翻阅 Issue 列表时能快速确定大致问题,而不是"一个建议"、"卡住了"等
  • 我已搜索现有 Issue,确认这不是重复问题
  • 我正在使用最新版本的 DropOut
  • 我已阅读 README 和文档

DropOut 版本

main(0c339ab)

操作系统

Linux (Arch)

操作系统版本

7.1.8-1-cachyos

Minecraft 版本

其他(请在描述中说明)

Mod 加载器

无(原版)

Java 版本

openjdk 26.0.2 2026-07-21

Java 来源

DropOut 自动检测

问题描述

当 Java 版本为 26.0.2,且 DropOut 的 JVM GC 预设选择为 ZGC 时,启动 Minecraft 26.2 会立即失败并返回退出代码 1。

Minecraft 客户端、库文件和资源均已成功下载,问题发生在 Java 进程创建阶段。

复现步骤

  1. 安装 Java 26.0.2。
  2. 在 DropOut 中将 Java 路径设置为 Java 26。
  3. 将 JVM GC 预设设置为「ZGC」。
  4. 安装并启动 Minecraft 26.2。
  5. 启动器提示 Minecraft 以退出代码 1 退出。

预期行为

DropOut 应该能够使用 Java 26 的 ZGC 正常启动 Minecraft,或者在当前 Java 版本不兼容时给出明确提示。

实际行为

Java 进程立即退出,Minecraft 无法启动。

日志中的关键错误:

Unrecognized VM option 'ZGenerational'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

DropOut 当前生成的参数包含:

  -XX:+UseZGC
  -XX:+UnlockExperimentalVMOptions
  -XX:+ZGenerational

日志和错误信息

No response

截图或录屏

No response

其他信息

根据 Oracle JDK 26 文档,JDK 24 起 ZGC 已默认采用分代模式,-XX:+ZGenerational 参数已被移除。因此建议:

  • 从 ZGC 预设中移除 -XX:+ZGenerational;
  • Java 26 下仅使用 -XX:+UseZGC 等仍受支持的参数;
  • 或根据 Java 主版本动态生成兼容的 JVM 参数;
  • 同时将设置中的 “ZGC (Java 21+)” 说明更新为更准确的兼容性描述。

参考:

https://docs.oracle.com/en/java/javase/26/gctuning/z-garbage-collector1.html

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions