上次更新时间:2026/2/2
因为我总要找每个版本需要什么Java,有些时候挺麻烦的,小白有时候也不知道什么是Java,所以我就想要不就把我找到的收集起来喵呜,这样方便大家更方便地找到,总之这篇有空我会去更新的咕噜。
同时,在某些版本使用更新的Java会出严重的崩溃问题,因此我会加上我的个人经验,告诉大家哪些版本相对稳定。
先贴一个来自Minecraft Wiki的Minecraft对Java的运行标准:(https://zh.minecraft.wiki/w/Java%E7%89%88)
从1.12(17w13a)开始,运行Minecraft的最低要求是Java 8。
从1.17(21w19a)开始,运行Minecraft的最低要求是Java 16。
从1.18(1.18-pre2)开始,运行Minecraft的最低要求是Java 17。
从1.20.5(24w14a)开始,运行Minecraft的最低要求是Java 21,且操作系统要求为64位。
从26.1(26.1-snapshot-1)起,运行Minecraft的最低要求为Java 25。
因为使用不符合各MC发布的版本时间相近的Java,使用较高版本的Java会出现较为明显的兼容性问题,因此对于最高版本还是有一定要求的,过高会导致出现问题,因此留下我的个人意见。顺便为了方便下载,给大家找了Java下载直链。
(≈)号表示版本号可上下较小范围浮动
常用的MC版本 => 对应个人认为稳定的版本
Java8
1.12.2+不推荐使用≤Java8_81
1.7.10 / 1.12.2 / 1.14.4 / 1.16.5 => ≈Java8_291
Zulu Java8 292 JDK Winodws版本下载地址:https://cdn.azul.com/zulu/bin/zulu8.54.0.21-ca-jdk8.0.292-win_x64.msi
Java11
1.16.5(特定模组需要Java11时)=> ≈Java11.0.18
Zulu Java11.0.18 JDK Winodws版本下载地址:https://cdn.azul.com/zulu/bin/zulu11.62.17-ca-jdk11.0.18-win_x64.msi
Java17
1.18.2 / 1.19.2 / 1.20.1 => ≈Java17.0.6
Zulu Java17.0.6 JDK Winodws版本下载地址:https://cdn.azul.com/zulu/bin/zulu17.40.19-ca-jdk17.0.6-win_x64.msi
Java21
1.20.5 / 1.21.1 => ≈Java21.0.5
Zulu Java21.0.5 JDK Winodws版本下载地址:https://cdn.azul.com/zulu/bin/zulu21.38.21-ca-jdk21.0.5-win_x64.msi
Java25
26.1+
Zulu Java25.0.1 JDK Winodws版本下载地址:https://cdn.azul.com/zulu/bin/zulu25.30.17-ca-jdk25.0.1-win_x64.msi
1.12.2+不推荐使用≤Java8_81
1.12.2~1.16.5主要还是用Java8
1.16.5主要还是用Java8与Java11两种(Java11是现有相当一部分模组的需要,正常请默认使用Java8)
1.20.1不要用≥Java21,容易出问题
以下为Mac版本
系统差异提醒:针对Mac用户,请注意自身机器芯片类型是属于Apple Silicon(M系列)(使用ARM的Java)还是Intel Mac(使用x86_64的Java)。如果在本该运行ARM Java的Apple Silicon上使用了x86_64的Java,虽然也能运行(会通过Rosetta转译),但启动MC会更慢,运行效率较为明显下降,性能不高,耗电也会更多。
Java8:
Zulu Java8 292 JDK Mac版本 ARM 64下载地址:https://cdn.azul.com/zulu/bin/zulu8.54.0.21-ca-jdk8.0.292-macosx_aarch64.dmg
Zulu Java8 292 JDK Mac版本 x86 64下载地址:https://cdn.azul.com/zulu/bin/zulu8.54.0.21-ca-jdk8.0.292-macosx_x64.dmg
Java11:
Zulu Java11.0.18 JDK Mac版本 ARM 64下载地址:https://cdn.azul.com/zulu/bin/zulu11.62.17-ca-jdk11.0.18-macosx_aarch64.dmg
Zulu Java11.0.18 JDK Mac版本 x86 64下载地址:https://cdn.azul.com/zulu/bin/zulu11.62.17-ca-jdk11.0.18-macosx_x64.dmg
Java17:
Zulu Java17.0.6 JDK Mac版本 ARM 64下载地址:https://cdn.azul.com/zulu/bin/zulu17.40.19-ca-jdk17.0.6-macosx_aarch64.dmg
Zulu Java17.0.6 JDK Mac版本 x86 64下载地址:https://cdn.azul.com/zulu/bin/zulu17.40.19-ca-jdk17.0.6-macosx_x64.dmg
Java21:
Zulu Java21.0.5 JDK Mac版本 ARM 64下载地址:https://cdn.azul.com/zulu/bin/zulu21.38.21-ca-jdk21.0.5-macosx_aarch64.dmg
Zulu Java21.0.5 JDK Mac版本 x86 64下载地址:https://cdn.azul.com/zulu/bin/zulu21.38.21-ca-jdk21.0.5-macosx_x64.dmg
Java25:
Zulu Java25.0.1 JDK Mac版本 ARM 64下载地址:
https://cdn.azul.com/zulu/bin/zulu25.30.17-ca-jdk25.0.1-macosx_aarch64.dmg
Zulu Java25.0.1 JDK Mac版本 x86 64下载地址:
https://cdn.azul.com/zulu/bin/zulu25.30.17-ca-jdk25.0.1-macosx_x64.dmg
Q:我在游戏崩溃日志中发现这些,是游戏在提醒我使用了错误的Java吗?
例如1,正在使用Java17时遇到:
The requested compatibility level JAVA_21 could not be set. Level is not supported by the active JRE or ASM version (Java 17.0, ASM 9.6 (ASM10_EXPERIMENTAL))
请求所兼容Java版本为 JAVA_21,但你现正使用的JRE(Java运行环境)或ASM版本未能满足(Java 17.0, ASM 9.6)
例如2,正在使用Java21时遇到:
Error loading class: XXXXX (java.lang.IllegalArgumentException: Class file major version 65 is not supported by active ASM (version 9.0 supports class version 61), reading XXXXX)
加载类错误:XXXXX(在读取XXXXX,该class文件版本为65,正在使用的ASM无法提供支持(现需要的版本为 9.0 ,最高支持的class版本为 61))
例如3,正在使用Java17时遇到:
Caused by: java.lang.UnsupportedClassVersionError: net/minecraft/world/inventory/AnvilMenu has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 61.0
崩溃导致原因:不支持的Java类版本错误:
net/minecraft/world/inventory/AnvilMenu是由更新的Java编译而成(class文件版本为65.0),但您现有的Java最高只支持61.0的class文件版本。
A:Yes,这些错误是游戏在提醒你使用了错误的Java。(好AI的说法)
有时候日志里会好心提醒你,你的Java版本不对,但有些时候会拐弯抹角,告诉你ASM什么玩意,需要你绕回来去看Java版本不对劲(Java和ASM的关系我就不展开了(),嗯...
加上有很多人主要还是来玩个游戏的,也不是这领域的,自然就没办法分清Java版本与class文件的关系,因此我在这里列出来,方便大家查询喵呜。
Java 8 对应的class文件版本号是52
Java 9 对应的class文件版本号是53
Java 10 对应的class文件版本号是54
Java 11 对应的class文件版本号是55
Java 12 对应的class文件版本号是56
Java 13 对应的class文件版本号是57
Java 14 对应的class文件版本号是58
Java 15 对应的class文件版本号是59
Java 16 对应的class文件版本号是60
Java 17 对应的class文件版本号是61
Java 18 对应的class文件版本号是62
Java 19 对应的class文件版本号是63
Java 20 对应的class文件版本号是64
Java 21 对应的class文件版本号是65
那接下来看上面的例子,例子1还好,直接告诉你Java用错了。
来看例子2,在使用Java21(编译出的class文件版本号是65)时,游戏的ASM无法识别更高版本的class文件(class文件版本号是61)对应,自然就出问题了,需要换成Java17或以下运行,但最低不能低于游戏版本的最低Java要求。
例子3的话和例子2处理方法大同小异,去换成原本文件编译好的那个Java版本就好,class文件版本61.0也就是61,根据上面的列表,说明我们现在在使用的是Java17;而游戏中的那个文件需要的class文件版本65.0也就是65,也就按上面的列表来说,游戏需要的是Java21。那么我们就换成Java21运行即可。
Q:怎么改游戏用的Java?
A:
你需要在启动器中修改对应游戏版本需要的Java

HMCL启动器

PCL2启动器
如果你在打开启动器的时候安装了Java,启动器可能并不会及时刷新到新的Java,需要你关闭启动器后再打开一遍启动器。
Q:我看见Java分不少牌子,有Oracle(甲骨文)的,有BellSoft的,有Zulu的,我要选哪个?
A:BellSoft、Oracle(甲骨文)等公司都提供了他们自己版本的Java,不同的版本的Java,包含了一些特定的优化、特性或者问题修复。对于游戏的运行,其实不同公司推出的Java,理论上都可以运行Minecraft,也无需过多挑选。但据我所知,对于游戏优化方面,Zulu内存占用相对较小(也是听途,需要实证)。
Q:我看见下载的Java有JRE和JDK之分,这有影响吗?
A:JRE(Java运行环境),JDK(Java开发工具),游戏只需要Java运行环境来运行,而开发工具会包含运行环境的,因此理论上使用两者运行游戏都是一样的效果。不过实际上,你要问具体有什么影响...JDK文件会比JRE大(,除此之外,在较新的游戏版本,JRE兼容性会比较差,建议需要使用Java11+的,下载JDK版本而非JRE版本。
就先写到这里了,有任何问题,可以评论砸我(((,毕竟是个人的经验,我会去修改的,有用就点个赞好了。