Skip to content

高级参数配置

HMCL 允许您通过 JVM 启动参数环境变量两种方式进行高级配置,以自定义其行为,例如修改数据目录、覆盖界面字体等。

优先级规则:通过 JVM 启动参数设置的配置项,其优先级高于通过环境变量设置的同名配置项。

JVM 启动参数

JVM 启动参数是在运行 Java 程序时传入的一种配置,格式为 -D<key>="<value>"。这是最直接、最常用的配置方式。
如果您只是想临时更改某项配置,可以直接在 java 命令中添加参数。这种方式不会永久生效。
为了方便且永久地应用配置,强烈建议您创建一个启动脚本。

启动命令:在 java 命令之后,-jar HMCL.jar 之前,添加 -D 开头的配置项。

bash
# 示例:将 HMCL 的数据目录临时指定为 D:/Games/HMCL
java -Dhmcl.home="D:/Games/HMCL" -jar HMCL.jar

Windows:创建一个名为 start.bat 的文件,输入以下内容,并与 HMCL.jar 放在同一目录下。

batch
@echo off
title HMCL Launcher
:: -Dhmcl.font.override 用于指定界面字体,解决部分系统下字体显示问题
:: -Dhmcl.home 用于指定 HMCL 自身的数据文件夹路径
java -Dhmcl.font.override="Microsoft YaHei" -Dhmcl.home="D:/Games/HMCL" -jar HMCL.jar
pause

Linux / macOS:创建一个名为 start.sh 的文件,输入以下内容,并与 HMCL.jar 放在同一目录下。

sh
#!/bin/bash
# 示例:指定字体为 "Noto Sans CJK SC",并将数据目录设置在用户主目录下的 Games/HMCL
java -Dhmcl.font.override="Noto Sans CJK SC" -Dhmcl.home="$HOME/Games/HMCL" -jar HMCL.jar

在首次使用前,需要为脚本添加执行权限。在终端中执行:chmod +x start.sh,之后,您可以通过 ./start.sh 来运行它。

JVM 参数详解

路径存储

参数说明示例
-Dhmcl.home=<path>(最常用) 覆盖 HMCL 的全局数据文件夹路径。-Dhmcl.home="D:/MC_Launchers/HMCL"
-Dhmcl.dir=<path>仅覆盖工作路径下的 .hmcl 文件夹路径,不推荐使用。-Dhmcl.dir="E:/MC/.hmcl"

界面显示

参数说明示例
-Dhmcl.font.override=<font>指定启动器界面的显示字体。-Dhmcl.font.override="微软雅黑"
-Dhmcl.native.encoding=<enc>指定系统原生编码,用于解决特定系统下的显示乱码问题。-Dhmcl.native.encoding="UTF-8"

网络下载

参数说明示例
-Dhmcl.bmclapi.override=<url>自定义 BMCLAPI 下载源,可切换为镜像站。-Dhmcl.bmclapi.override="https://download.mcbbs.net"
-Dhmcl.update_source.override=<url>自定义 HMCL 启动器自身的更新源地址。-Dhmcl.update_source.override=<url>
-Dhttp.proxyHost=<ip>设置 HTTP 代理服务器地址。-Dhttp.proxyHost=127.0.0.1
-Dhttp.proxyPort=<port>设置 HTTP 代理服务器端口。-Dhttp.proxyPort=7890
-Dhttps.proxyHost=<ip>设置 HTTPS 代理服务器地址。-Dhttps.proxyHost=127.0.0.1
-Dhttps.proxyPort=<port>设置 HTTPS 代理服务器端口。-Dhttps.proxyPort=7890

API 与认证

参数说明示例
-Dhmcl.curseforge.apikey=<key>自定义 CurseForge API 密钥,用于访问模组。-Dhmcl.curseforge.apikey=<key>
-Dhmcl.authlibinjector.location=<path>指定本地 authlib-injector.jar 的路径,避免从网络下载。-Dhmcl.authlibinjector.location="D:/tools/authlib.jar"

系统调试

参数说明示例
-Dhmcl.self_integrity_check.disable=true(不推荐) 禁用启动器更新时的完整性检查。-Dhmcl.self_integrity_check.disable=true
-Dhmcl.native.backend=<type>指定本地后端类型 (auto/jna/none)。-Dhmcl.native.backend=jna
-Dhmcl.hardware.fastfetch=<bool>(实验性) 使用 fastfetch 更快地获取设备信息。-Dhmcl.hardware.fastfetch=true

环境变量详解

变量名用途示例
HMCL_JAVA_HOME指定 HMCL 启动器自身使用的 Java 路径 (非游戏)。C:\Program Files\Java\jdk-17
HMCL_JAVA_OPTSHMCL 启动器自身添加额外的 JVM 选项。-Xmx2G -XX:+UseG1GC
HMCL_FONT指定启动器界面字体,等同于 -Dhmcl.font.overrideMicrosoft YaHei
HMCL_JRES为 HMCL 添加额外的 Java 搜索路径。C:\Java1;C:\Java2 (Win) 或 /opt/java1:/opt/java2 (Linux)

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