Skip to content

内置 JRE 分发

许多服务器主和整合包作者都面临一个共同的难题:玩家的电脑环境千差万别,部分玩家可能仍在使用旧版 Java,导致无法启动需要新版 Java 的游戏或特定 Mod。
为了解决这个问题,方法是在整合包中内置一个指定版本的 Java 环境,确保所有玩家都使用这个统一的环境来启动游戏,而不是依赖其系统上可能存在问题的 Java。
本章将介绍两种配置内置 JRE 的方法。

使用内置功能

HMCL 提供了内置的便携式 Java 检测与加载功能,这是为整合包配置 Java 环境最简单、最推荐的方法。
HMCL 启动器外壳 (HMCL.exeHMCL.sh) 在启动时,会自动检测并优先使用与其同级目录下的特定 JRE 文件夹。

重要提示
此功能依赖于 HMCL 启动器外壳(即 HMCL.exeHMCL.sh 文件)。启动器内部的“下载更新”功能仅更新核心文件 (HMCL.jar),而不会更新外壳。
因此,制作整合包时,请务必从官网下载最新版的启动器,以确保此功能可用且行为符合预期。

文件夹名称对应系统架构优先级与说明
jre-x64Windows / Linux / macOS x86 64位(最常用)Windows: 优先级 2。• 其他系统: 脚本自动匹配架构。• 最佳实践推荐此项。
jre-x86Windows / Linux x86 32位Windows: 优先级 3。• 其他系统: 脚本自动匹配架构。
jre-arm64Windows on ARM 64位Linux / macOS ARM 64位 (如 M1/M2 Mac)Windows: 优先级 1 (最高)。• 其他系统: 脚本自动匹配架构。
jre-arm32Linux ARM 32位• 仅用于 HMCL.sh,脚本根据系统架构自动选择。
jre-loongarch64LoongArch 64位• 仅用于 HMCL.sh,脚本根据系统架构自动选择。

总结:
Windows (HMCL.exe): 严格按照 jre-arm64jre-x64jre-x86 的固定顺序查找,并使用找到的第一个
Linux / macOS (HMCL.sh): 根据当前系统架构,直接查找与之匹配的文件夹。
回退机制: 如果在同级目录下未找到任何可用的 JRE 文件夹,HMCL 将会回退至使用系统环境中安装的 Java。

创建自定义启动脚本

如果你的整合包使用的是原始的 HMCL.jar 文件(而非 .exe.sh 包装器),则可以通过创建自定义脚本来指定 JRE。

首先,规划好你的整合包目录。一个典型的结构如下:

text
MyModpack/
├── .minecraft/         <-- Minecraft 核心文件夹
│   ├── assets/
│   ├── libraries/
│   ├── versions/
│   └── HMCL.jar        <-- 必须是这个文件名!
├── jre-x64/            <-- 你准备的 64 位 JRE
│   ├── bin/
│   ├── lib/
│   └── ...
└── 启动游戏.bat         <-- 我们即将创建的启动脚本

注意:HMCL 的 JAR 文件名必须是 HMCL.jar
HMCL-3.5.x.jar 这样带版本号的文件名将无法被正确识别。
你可以从官网下载适用于 macOS 或 Linux 的版本,它们都是通用的 .jar 文件。

然后,创建启动脚本:

batch
# Windows(.bat)
@echo off
cd /d %~dp0
start "HMCL" ".\jre-x64\bin\javaw.exe" -jar ".\.minecraft\HMCL.jar"
exit
sh
# Linux/macOS(.sh)
#!/bin/bash
cd "$(dirname "$0")"
./jre-x64/bin/java -jar ./.minecraft/HMCL.jar

Linux/macOS 启动脚本记得赋予执行权限。 现在,玩家只需双击对应的脚本文件即可使用你指定的 JRE 启动游戏。
HMCL 启动后,也会默认使用这个 JRE 来启动 Minecraft。

"Minecraft" is a trademark of Microsoft Corporation. This document is not affiliated with Microsoft Corporation.