高级参数配置
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.jarWindows:创建一个名为 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
pauseLinux / 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_OPTS | 为 HMCL 启动器自身添加额外的 JVM 选项。 | -Xmx2G -XX:+UseG1GC |
HMCL_FONT | 指定启动器界面字体,等同于 -Dhmcl.font.override。 | Microsoft YaHei |
HMCL_JRES | 为 HMCL 添加额外的 Java 搜索路径。 | C:\Java1;C:\Java2 (Win) 或 /opt/java1:/opt/java2 (Linux) |