Skip to content

内置 JRE 分发 ​

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

使用内置功能 ​

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

重要提示
此功能依赖于 HMCL 启动器外壳(即 HMCL.exe 或 HMCL.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-arm64 → jre-x64 → jre-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.