Minecraft 在更新到 1.18 版本後,對於 Java — 也就是我們所說的 OpenJDK 版本要求終於提升到了 Java 17,無論是 模組還是插件伺服器皆是如此。
一般玩家可能無感,但如果你有同時架設多版本的伺服器,或者本身電腦有在進行 Java 類的開發工作,系統環境變數早已設定為固定版本,當你直接在 Minecraft 伺服器中下 java -jar server.jar 指令時,系統所調用的 JDK 程式可能不會是你所預想的版本。
安裝 OpenJDK
一、從下列連結中挑選對應遊戲版本所使用的 OpenJDK 提供商進行下載。
- 遊戲版本 < 1.18:Latest releases | Adoptium
- 遊戲版本 >= 1.18:下載 OpenJDK 的 Microsoft 組建 | Microsoft Docs
如果你要架設的 Minecraft 伺服器是 1.18 以前的版本,我推薦使用 Adoptium 釋出的包,1.18 以後的版本則推薦用微軟維護的分支版本,效能理應比較好。
為方便待會進行不同版本的檔案管理,下載時請務必選擇 .zip 或其他的壓縮檔,我們要手動安裝,不要用 .exe 或 .msi 的來安裝,他會多做了一些不必要的設定 (我們沒有要設定環境變數)。
二、找一個位置新增 DK Files 資料夾來放置各版本的 OpenJDK,如果你同時有在開發軟體,可以在 DK Files 中再建立一個 OpenJDK 資料夾來將各程式語言的 SDK 區分開來。
三、將下載的 OpenJDK 分別解壓縮到資料夾內,資料夾名稱使用他的版本代號來區別。這邊舉例:17.0.2+8 是微軟提供的 17 版,jdk8u332-b09 是 Adoptium 的 8 版。
修改 Minecraft 啟動腳本
這邊我就假設你已經架設好 Minecraft 伺服器,但因為 OpenJDK 版本不同而無法執行。
一、使用文字編輯器開啟伺服器的啟動腳本,例如下圖中的 start.bat。
二、進入前面整理好且對應版本的 OpenJDK 位置中的 bin 資料夾,先按著鍵盤 Shift 不要放,再對著 java.exe 檔案滑鼠右鍵,選擇 複製路徑。
三、回到文字編輯器,將複製到的 java.exe 路徑直接取代 java -jar 指令的第一個 java 單字,如下圖。
四、執行啟動腳本後 Minecraft 伺服器將能使用正確的 Java 版本來執行。
用這樣的方法來管理不同版本的 OpenJDK 與 Minecraft 伺服器有個好處,因為不用動到系統的環境變數關係,我們就可以用幾個資料夾方便的進行版本控管,也不需要將電腦重新開機。