跳转到主要内容

适用于 Minecraft 的 Java (JRE/JDK)的安装与选择

什么是 Java ?什么是 JRE ?什么是 OpenJ9?


Java 是一种广泛使用的计算机编程语言,Java 版 Minecraft 是用 Java 编写的,因此游玩 Java 版 Minecraft 需要安装 JRE。

JRE (Java Runtime Enviromnent) [Java运行时环境] 是运行使用 Java 语言编写的软件的必备环境。
JDK (Java Development Kit) [Java开发套件],是供开发者使用的套件,有一些开发用的功能,JDK 内包含了 JRE。
JVM (Java Virtual Machine) [Java虚拟机] 是 JRE 的一部分,所有 Java 程序都运行在 JVM 中。

我们平时说的安装 Java,其实是安装 JRE。

OpenJ9 是不同于 HotSpot (OpenJDK中的标准JVM) 的一个 JVM,在内存管理方面领先 HotSpot 。经过测试,使用 OpenJ9 能在一定程度上减少 Minecraft 客户端的内存占用,但可能增加 CPU 的使用率,所以不建议在笔记本等 CPU 性能较弱的电脑上使用。

 

Minecraft 的 Java 版本需求


一般情况下 Minecraft 原版的 Java 版本需求如下:

  • 运行 1.0 - 1.12 的原版需要使用 Java7 或 Java8(1.7 前的某些远古组件可能不支持 Java8)。
  • 运行 1.13 - 1.16 的原版可以使用 Java8,或 Java11 - Java15 等高版本 Java,使用高版本 Java 可以在一定程度上提高性能(启动器不一定支持)。
  • 运行 1.17+ 原版和模组均需要使用 Java16 等更高版本的 Java。

一般情况下 Minecraft 模组的 Java 版本需求如下:

  • 运行 1.0 - 1.13 的 FabricMC、Minecraft-Forge 需要使用 Java7 或 Java8(1.7 前的某些远古组件可能不支持 Java8)。
  • 运行 1.14 - 1.16 的 FabricMC、Minecraft-Forge 最好使用 Java8,也可以使用 Java11 - Java15 等高版本 Java,使用高版本 Java 可以在一定程度上提高性能,但有部分模组不支持,同时也可能有模组需要更高版本的 Java。
  • 运行 1.17+ 原版和模组均需要使用 Java16 等更高版本的 Java。

实际上上 PaperMC 服务端已在 Paper 1.16.5 build 669 和之后版本要求使用 Java16,Paper 团队还建议运行最稳定的最新 JVM(可以理解为更高版本的 Java)。我们也推荐尽量使用高版本的 Java(前提是兼容性没问题)。

*HMCL 启动器在 3.3.183 之前的版本需要 JavaFX,现在不确定。

 

各种 JRE/JDK 的选择


Java 是 Sun 公司发明的,2006 年末 Sun 公司宣传将开放 Java 源代码。
2009 年 Oracle 公司收购了 Sun 公司。而 Sun 公司在被收购的几天前发布了 OpenJDK,即开源版本的 JDK。
由于 OracleJDK 正统且免费性能好,于是大家都开始用 OracleJDK。但后来由于 Oracle 公司对于 Java 社群的不友善和商业化,逐渐催生了许多基于 OpenJDK 的第三方 JDK。

目前流行的 JDK 有: OracleJDKOpenJDKLibericaZuluRedHatOpenJDKAdoptOpenJDK(提供 Openj9)、GraalVM(其实不是 JDK,但它有Jvm)等。

不同的 JDK 细节表现、性能、支持的系统/内存各有差别,你可以查看测评或自行测试来决定使用哪一个。

玩 Minecraft 推荐使用:OracleJDK 或 Zulu 或 GraalVM

*许多第三方构建的 JDK 不包含 JavaFX,某些启动器(HMCL)需要该组件。

32 位和 64 位的选择


时至今日,你应该无条件安装 64 位 JRE。现代 Intel/AMD 的 X86 架构处理器都是 64 位的。

32 位版本在 Windows 下仅能分配大约 1.5G 内存,这对 Minecraft 来说是远远不够的。

如果你的系统不是 64 位的,那么我们强烈建议你重装为 64 位系统。

 

下载与安装


你并不需要“安装”Java,只需要解压到任意文件夹即可。

由于 Minecraft 1.0-1.16 兼容 Java8, 但 1.17 却需要 Java16。且目前大部分应用仍然兼容或需要 Java8,
因此本文推荐用安装程序安装 Oracle JRE 8 和以解压的方式“安装” Zulu JRE 16。

使用安装程序安装仅仅是多了环境变量、更新升级之类的东西,本质上和解压没有什么不同。
使用解压的方式安装是为了避免环境变量混乱,导致版本错乱冲突不好管理等。
什么是环境变量?在文末有介绍。

没有环境变量该如何使用 Java ?
有环境变量的情况下通常的启动命令是 java -jar xxx.jar 。
但你可以用 java路径/bin/java.exe -jar xxx.jar 来代替,其他系统可能没有 .exe 后缀,但本质是一样的。
如果路径中有空格等特殊字符,那么你需要用英文单引号包裹路径,例如'java path/bin/java.exe' -jar xxx.jar
如果你使用 Powershell 还需要再前面加上 & ,例如& 'java path/bin/java.exe' -jar xxx.jar
java 命令本身就等于 java路径/bin/java.exe

 

A.安装 Oracle JRE 8

此版本自带 JavaFX。

1. 访问https://www.java.com/zh-CN/download/manual.jsp

2. 点击并下载Windows 脱机 (64 位) 其他系统请下载对应文件(点击图片可以放大)。

image-1631775365011.png

3. 打开下载好的jre-8uxxx-windows-x64.exe,点击安装

4. 安装完成,默认安装目录在C:\Program Files\Java\jre1.8.0_xxx(1.8.0 或 8.0.x 代表 Java8,16.0.x 代表 Java16)。

image-1631775729168.png

*这里安装的是 JRE,如果需要 JDK 请至 https://www.oracle.com/cn/java/technologies/javase-downloads.html 下载。
*Oracle JRE/JDK 商业应用需要收费。

 

B.安装 Zulu JRE 16

无论是其他第三方构建还是其他版本,他们的解压方式安装都是一样的,如果你想安装其他版本,请照葫芦画瓢。
在 Java Package 选择带 FX 的选项即包含 JavaFX。

1. 访问 https://www.azul.com/downloads/ 并拉到页面底端。

2.由于 Java 16 是短期支持版本,目前 Zulu 已不再提供新版本的 Java 16,因此你需要先打开 Older Zulu versions 开关。
如图选择Java 16(STS) 、WindowsX86 64-bitJRE-FX,其他系统请选择对应选项(点击图片可以放大)。
当然你也可以选择安装 JDK。

image-1633539284493.png

3.选择完后点击 .Zip 下载压缩包。

image-1631775466070.png

4. 用压缩软件打开,解压到C:\Program Files\Java(或你熟悉的目录)。

5. 安装完成,安装目录在C:\Program Files\Java\zulu16.xx.xx-ca-fx-jre16.0.x-win_x64

image-1631775805856.png

*这里安装的是 JRE,如果需要 JDK 请选择 JDK 下载。
*Zulu JRE/JDK 商业应用免费。

 

如果你是带独立显卡的笔记本,别忘了在系统的图形设置里将刚刚安装的 java.exe 和 javaw.exe 设置为高性能。

 

在 Minecraft 启动器中使用


一般来说,第三方启动器会自动检测到你安装的 JDK/JRE。
但由于我们使用手动的方式安装了 Zulu 16,部分启动器可能检测不到,所以我们需要手动指定 Java 目录来让启动器使用。

如果你使用官方启动器,那么你不需要操心这些,因为官方启动器自带 JRE。

这里用 Zulu 16 做举例,如果你安装了其他版本的 Java,同理选择其他版本即可。

 

MultiMC

支持 Windows、Linux、macOS 系统。
下载地址:https://multimc.org
*不建议更改全局设置。

1. 右键要更改的实例,选择编辑实例(点击图片可以放大)。

image-1631776238551.png

2. 点击设置 勾选 Java安装 点击 浏览…

image-1631776287794.png

3. 找到C:\Program Files\Java\zulu16.xx.xx-ca-fx-jre16.0.x-win_x64\bin 文件夹里的 javaw.exe 并选择。
注意 zulu16.xx.xx-ca-fx-jre16.0.x-win_x64 会根据你安装的版本改变,请选择正确的文件夹。
(其他系统请选择 路径/bin/java)(1.8.0 或 8.0.x 代表 Java8,16.0.x 代表 Java16)。

image-1631776446069.png

4.更改完成,点击关闭即可。

 

HMCL

支持 Windows、Linux、macOS 系统。
下载地址:https://hmcl.huangyuhui.net/download(请下载开发版)
*不建议更改全局设置,请先打开版本隔离,可以参考这篇文章

1. 点击版本列表,找到要修改的游戏版本,点击右边的:(点击图片可以放大)。

image-1631776763967.png

2.选择游戏管理

image-1631776901313.png

3. 勾选启用游戏特定设置(不影响其他游戏版本),点击 Java 路径 右边的 V

image-1631777245561.png

4.A. 如果你运气好的话,启动器已经自动检测到了 Java16,选择 16.0.2 即可(1.8.0 或 8.0.x 代表 Java8,16.0.x 代表 Java16)。

image-1631777377627.png

4.B. 如果你运气不好,启动器没有检测到 Java16,那么请点击 自定义,然后点击右边的文件夹图标

image-1631777636713.png

4.B.1. 找到C:\Program Files\Java\zulu16.xx.xx-ca-fx-jre16.0.x-win_x64\bin 文件夹里的 javaw.exe 并选择。
注意 zulu16.xx.xx-ca-fx-jre16.0.x-win_x64 会根据你安装的版本改变,请选择正确的文件夹。
(其他系统请选择 路径/bin/java)(1.8.0 或 8.0.x 代表 Java8,16.0.x 代表 Java16)。

image-1631776446069.png

5. 完成,返回即可

 

PCL 2

支持 Windows 系统。
下载地址:https://afdian.net/@LTCat
*不建议更改全局设置,请先打开版本隔离,可以参考这篇文章

1. 点击设置,然后点击自动搜索

image-1631778212074.png

2.A. 运气好的话你应该能看到 Java 8 和 Java16,交由启动器自动判断即可(1.8.0 或 8.0.x 代表 Java8,16.0.x 代表 Java16)。

image-1631778252198.png

2.B.1. 如果你运气不好,启动器没有检测到 Java16,或是选择了错误的 Java 版本。
3.B.2. 点击设置,然后点击手动导入PCL2 真难用居然不能再版本里选择

image-1631778782978.png

2.B.3. 找到C:\Program Files\Java\zulu16.xx.xx-ca-fx-jre16.0.x-win_x64\bin 文件夹里的 javaw.exe 并选择。
注意 zulu16.xx.xx-ca-fx-jre16.0.x-win_x64 会根据你安装的版本改变,请选择正确的文件夹。
(其他系统请选择 路径/bin/java)(1.8.0 或 8.0.x 代表 Java8,16.0.x 代表 Java16)。

2.B.4. 没有意外的话,Java 版本列表里面应该已经有了 Java 16,并显示手动导入。

image-1631778967289.png

2.B.5. 返回启动点击版本选择

image-1631778502513.png
2.B.6. 找到要修改的版本,点击右边的齿轮按钮

image-1631778624708.png

2.B.7. 在 游戏 Java 处选择合适的 Java

image-1631779028952.png

4. 完成

 

 

什么是环境变量


环境变量是操作系统中一个动态的值,可以被应用程序使用。例如 TEMP 变量可以指示一个临时文件夹,告诉程序去哪存放临时文件。

有一类叫做 PATH 的变量,可以让操作系统在任意位置都找到可执行程序。

为什么要配置 PATH 环境变量?

配置 PATH 是为了在任意目录下都能够运行想要的程序,例如 Java。(Java 一般需要配置 3 个环境变量 PATH,CLASSPATH,JAVA_HOME)

用 Windows 的小伙伴比较疑惑,我安装软件的时候不是没有配置环境变量呢,不是直接点击打开就行吗?
其实你点击快捷方式后,后台会自动切换到该目录然后在该目录打开你想要运行的软件。
那为什么 Java 不行呢,因为 Java 没有 GUI(窗口界面),你需要用命令行的方式去调用 Java。在 Java 目录下有着 \bin 文件夹,里面有 java.exe javaw.exe 这些程序都是可以直接在命令行里启动的,但前提是你需要在这个文件夹里来使用这个程序。

配置 PATH 是为了能在任意目录下都使用 java 命令。而不是移动到 java 文件夹再输入命令。

比如我要在桌面运行 xxx.jar,如果添加 PATH 我可能就要将 xxx.jar 复制到 java 路径中使用。

 

 

 

仍然有不明白的地方?
欢迎留言提出建议。