上次更新时间:2024/8/7
因为我总要找每个版本需要什么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位。
因为使用不符合各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 JRE Winodws版本下载地址:https://www.azul.com/core-post-download/?endpoint=zulu&uuid=ea336f59-9e16-4502-9938-f2a7c7cd2fa1)
Java11
1.16.5(特定模组需要Java11时)=> ≈Java11.0.18
(Zulu Java11.0.18 JDK Winodws版本下载地址:https://www.azul.com/core-post-download/?endpoint=zulu&uuid=1af65b7f-7d28-4e23-b59c-e9ec3189cd36)
Java16
1.16.5(特定情况下需要Java16时)
(Zulu Java16.0.2 JDK Winodws版本下载地址:https://www.azul.com/core-post-download/?endpoint=zulu&uuid=7e24efa5-590f-4c4c-b8a7-20b2cb352da4)
Java17
1.18.2 / 1.19.2 / 1.20.1 => ≈Java17.0.6
(Zulu Java17.0.6 JDK Winodws版本下载地址:https://www.azul.com/core-post-download/?endpoint=zulu&uuid=a-3e20-400f-bae0-da1b8a1a31cb)
Java21
1.20.5+ => ≈Java21.0.3
(Oracle Java21.0.3 JDK Winodws版本下载地址:https://download.oracle.com/java/21/latest/jdk-21_windows-x64_bin.msi)
1.12.2+不推荐使用≤Java8_81
1.12.2~1.16.5主要还是用Java8
1.16.5主要还是用Java8与Java11两种(Java11是现有相当一部分模组的需要,正常请默认使用Java8)
1.20.1不要用≥Java21,容易出问题
Q:我在游戏崩溃日志中发现这些,是游戏在提醒我使用了错误的Java吗?
例如,正在使用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)
例如,正在使用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))
A:Yes,这些错误是游戏在提醒你使用了错误的Java。(好AI的说法)
有时候日志里会好心提醒你,你的Java版本不对,但有些时候会拐弯抹角,告诉你ASM什么玩意,需要你绕回来去看Java版本不对劲(Java和ASM的关系我就不展开了(),嗯...
加上有很多人主要还是来玩个游戏的,也不是这领域的,自然就没办法分清Java版本与class文件的关系,因此我在这里列出来,方便大家查询喵呜。
那接下来看上面的例子,第一个还好,直接告诉你Java用错了。
来看第二个例子,在使用Java21(编译出的class文件版本号是65)时,游戏的ASM无法识别更高版本的class文件(class文件版本号是61)对应,自然就出问题了,需要换成Java17或以下运行,但最低不能低于游戏版本的最低Java要求。
Q:怎么改游戏用的Java?
A:
你需要在启动器中修改对应游戏版本需要的Java
如果你在打开启动器的时候安装了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兼容性会比较差,建议需要使用Java17+的,下载JDK版本而非JRE版本。
就先写到这里了,有任何问题,可以评论砸我(((,毕竟是个人的经验,我会去修改的,有用就点个赞好了。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/5167.html