1. Backgroud
Minecraft,我的世界,眾所周知,分為 Java 版和基岩版。Java 版在運行時必須安裝 Java 運行環境。
對於官方版本的游戲,官方包中自帶了 Java Runtime Environment。但是對於啟動器版本,啟動器一般不會集成這些元件,並且有些啟動器在使用的時候就需要調用 Java 來啟動,所以 Java 是必須要安裝的。
Java 分為 jre (Java Runtime Environment) 與 jdk (Java Development Kit)。事實上,jdk 涵蓋了 jre 的全部功能。Oracle 官網對於這兩種工具包給出了圖形解釋。

圖1 Oracle 對於 jre 和 jdk 的定義 docs.oracle.com
非常明顯,jdk 相較於 jre,多了 Java Language 與 Tools & Tool APIs ,也就是 Java 的開發部分。
問題來了,對於 Minecraft,我們到底需要 jdk 還是 jre 呢?
一位 BMCL 的開發者給出了說法
MC需要啟動器的原因說到底只有一個,因為他是用Java寫成的。
Java的運行需要JVM,但是JVM需要傳入相應的參數才能讓一個Java程序正確的運行。
舉個簡單的例子,網上下載得到的一個可執行的jar包,是不能像exe一樣雙擊運行的。需要用命令行調用java -jar a.jar才能夠執行,而啟動器最核心的功能就是完成這個過程。但是如果一個程序復雜到一定程度之后,是不可能一個jar搞定所有功能的,否則會有很復雜的依賴以及人員之間的協調成本,這種時候就需要將一個完整的程序拆成模塊,各個模塊之間可以按照一定的約定協同工作。
仔細看一些比較大的軟件,比如 QQ,除了一些exe以外還有大量的dll文件存在,這就是拆開后的結果。這種跑到Java下就會成為一個一個的jar包,但是Java允許jar包內嵌jar包解決依賴的問題。
然而實際上,如果將一個程序所需要的所有jar包全部打包起來,那么最終得到的jar包體積會非常恐怖,而且有一些軟件的用戶協議不允許這么打包,所以在啟動階段就需要加載許多jar包,開啟一個Java程序的命令就會變成java -cp a.jar:b.jar:c.jar,需要一個一個將所用到的jar包列清楚。
這是MC啟動器的最大的作用,也是 1.6版本之前的啟動器主要在做的事情。
作者:bangbang93
鏈接:https://www.zhihu.com/question/49997128/answer/119951802
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
不難看出,我們需要的是 jre,也就是運行環境。
2. Followed Steps
2.1 Java Environment Configuration
經過上文介紹,我們只需要下載 jre 即可運行。
既然如此,你可以選擇從 Java 官網進行安裝。
Java.com(選擇 windows offline)
另外,也可以通過 MMP 的 Oracle 安裝(這玩意兒老連不上 tmd)
無腦安裝即可
2.2 Java Development Kit
同樣的,因為 jdk 內含 jre,所以安裝 jdk 也有同等效力。但是 jdk 只能從 oracle 上安裝,這樣就導致我這樣的人根本連進都進不去。
所以我找到了一系列的鏈接
-
jdk 下載
-
清華大學開源鏡像站 Tsinghua TUNA
-
中國科學技術大學 USTC
-
Oracle 官方源
2.3 HMCL Installer
安裝后運行即可
3. Warnings
用這個方法安裝 jdk 還是 jre,都會造成一個問題,那就是在安裝高版本的 java 的時候,會發生警告。

圖2 報錯。。。
我感覺這個問題是由於過高的 Java 版本造成的,因為 Minecraft 官方給出的解答是在 1.17版(21w19a)之后,必須使用 java 16 或更高版本,我認為是不是因為 Java 1.18 版本過高造成的這個問題。
但是這個問題事實上不影響運行。第三方平台給出的解釋是:
DST Root CA X3 證書將於 2021年9月30日到期。這意味着在此之后那些不信任 ISRG Root X1 證書的舊設備在訪問使用 Let's Encrypt 證書的網站時將開始出現證書警告。不過有一個例外很重要:多虧了 DST Root CA X3 的特殊 "交叉簽名" 機制,Let's Encrypt 的證書依然可以在不信任 ISRG Root X1 證書的較舊的 Android 設備上正常工作。
交叉簽名機制使得 Let's Encrypt的證書的有效期限可以超過根證書的到期時間,此例外僅適用於 Android。
那該怎么辦呢?對於大多數人來說,什么也不用做!我們已經准備好了新的證書發行機制,因此您的網站在大多數情況下會做正確的事,兼容非常廣泛。
之后我會試驗是否低版本的 Java 會使得這個錯誤消失。雖然這個警告無關緊要,但是畢竟看着難受。
至此,所有的安裝過程全部結束。
