|
| 1 | +# 貢獻指南 |
| 2 | + |
| 3 | +<!-- #BEGIN LANGUAGE_SWITCHER --> |
| 4 | +[English](Contributing.md) | **中文** ([简体](Contributing_zh.md), **繁體**) |
| 5 | +<!-- #END LANGUAGE_SWITCHER --> |
| 6 | + |
| 7 | +## 構建 HMCL |
| 8 | + |
| 9 | +### 環境需求 |
| 10 | + |
| 11 | +構建 HMCL 啟動器需要安裝 JDK 17 (或更高版本)。你可以從此處下載它: [Download Liberica JDK](https://bell-sw.com/pages/downloads/#jdk-25-lts)。 |
| 12 | + |
| 13 | +在安裝 JDK 後,請確保 `JAVA_HOME` 環境變數指向符合需求的 JDK 目錄。 |
| 14 | +你可以這樣查看 `JAVA_HOME` 指向的 JDK 版本: |
| 15 | + |
| 16 | +<details> |
| 17 | +<summary>Windows</summary> |
| 18 | + |
| 19 | +PowerShell: |
| 20 | +``` |
| 21 | +PS > & "$env:JAVA_HOME/bin/java.exe" -version |
| 22 | +openjdk version "25" 2025-09-16 LTS |
| 23 | +OpenJDK Runtime Environment (build 25+37-LTS) |
| 24 | +OpenJDK 64-Bit Server VM (build 25+37-LTS, mixed mode, sharing) |
| 25 | +``` |
| 26 | + |
| 27 | +</details> |
| 28 | + |
| 29 | +<details> |
| 30 | +<summary>Linux/FreeBSD</summary> |
| 31 | + |
| 32 | +``` |
| 33 | +> $JAVA_HOME/bin/java -version |
| 34 | +openjdk version "25" 2025-09-16 LTS |
| 35 | +OpenJDK Runtime Environment (build 25+37-LTS) |
| 36 | +OpenJDK 64-Bit Server VM (build 25+37-LTS, mixed mode, sharing) |
| 37 | +``` |
| 38 | + |
| 39 | +</details> |
| 40 | + |
| 41 | +<details> |
| 42 | +<summary>macOS</summary> |
| 43 | + |
| 44 | +``` |
| 45 | +> /usr/libexec/java_home --exec java -version |
| 46 | +openjdk version "25" 2025-09-16 LTS |
| 47 | +OpenJDK Runtime Environment (build 25+37-LTS) |
| 48 | +OpenJDK 64-Bit Server VM (build 25+37-LTS, mixed mode, sharing) |
| 49 | +``` |
| 50 | + |
| 51 | +</details> |
| 52 | + |
| 53 | +### 獲取 HMCL 原始碼 |
| 54 | + |
| 55 | +- 透過 [Git](https://git-scm.com/downloads) 可以獲取最新原始碼: |
| 56 | + ```shell |
| 57 | + git clone https://github.com/HMCL-dev/HMCL.git |
| 58 | + cd HMCL |
| 59 | + ``` |
| 60 | +- 從 [GitHub Release 頁面](https://github.com/HMCL-dev/HMCL/releases)可以手動下載特定版本的原始碼。 |
| 61 | + |
| 62 | +### 構建 HMCL |
| 63 | + |
| 64 | +想要構建 HMCL,請切換到 HMCL 專案的根目錄下,並執行以下指令: |
| 65 | + |
| 66 | +```shell |
| 67 | +./gradlew clean makeExecutables |
| 68 | +``` |
| 69 | + |
| 70 | +構建出的 HMCL 程式檔位於根目錄下的 `HMCL/build/libs` 子目錄中。 |
| 71 | + |
| 72 | +## 除錯選項 |
| 73 | + |
| 74 | +> [!WARNING] |
| 75 | +> 本文介紹的是 HMCL 的內部功能,我們不保證這些功能的穩定性,並且隨時可能修改或刪除這些功能。 |
| 76 | +> |
| 77 | +> 使用這些功能時請務必小心,錯誤地使用這些功能可能會導致 HMCL 行為異常甚至崩潰。 |
| 78 | +
|
| 79 | +HMCL 提供了一系列除錯選項,用於控制啟動器的行為。 |
| 80 | + |
| 81 | +這些選項可以透過環境變數或 JVM 參數設定。如果兩者同時存在,那麼 JVM 參數會覆蓋環境變數的設定。 |
| 82 | + |
| 83 | +| 環境變數 | JVM 參數 | 功能 | 預設值 | 額外說明 | |
| 84 | +|-----------------------------|----------------------------------------------|--------------------------------|-------------------------------------------------------------------------------------------------------------|--------------| |
| 85 | +| `HMCL_JAVA_HOME` | | 設定用於開啟 HMCL 的 Java | | 僅對 exe/sh 生效 | |
| 86 | +| `HMCL_JAVA_OPTS` | | 設定開啟 HMCL 時的預設 JVM 參數 | | 僅對 exe/sh 生效 | |
| 87 | +| `HMCL_FORCE_GPU` | | 設定是否強制使用 GPU 加速繪製 | `false` | |
| 88 | +| `HMCL_ANIMATION_FRAME_RATE` | | 設定 HMCL 的動畫幀率 | `60` | | |
| 89 | +| `HMCL_LANGUAGE` | | 設定 HMCL 的預設語言 | 使用系統預設語言 | |
| 90 | +| | `-Dhmcl.dir=<path>` | 設定 HMCL 的目前資料存放位置 | `./.hmcl` | | |
| 91 | +| | `-Dhmcl.home=<path>` | 設定 HMCL 的使用者資料存放位置 | Windows: `%APPDATA%\.hmcl`<br>Linux/BSD: `$XDG_DATA_HOME/hmcl`<br>macOS: `~Library/Application Support/hmcl` | | |
| 92 | +| | `-Dhmcl.self_integrity_check.disable=true` | 檢查更新時不檢查程式完整性 | | | |
| 93 | +| | `-Dhmcl.bmclapi.override=<url>` | 設定 BMCLAPI 的 API Root | `https://bmclapi2.bangbang93.com` | | |
| 94 | +| | `-Dhmcl.discoapi.override=<url>` | 設定 foojay Disco API 的 API Root | `https://api.foojay.io/disco/v3.0` | |
| 95 | +| `HMCL_FONT` | `-Dhmcl.font.override=<font family>` | 設定 HMCL 預設字體 | 使用系統預設字體 | | |
| 96 | +| | `-Dhmcl.update_source.override=<url>` | 設定 HMCL 更新來源 | `https://hmcl.huangyuhui.net/api/update_link` | | |
| 97 | +| | `-Dhmcl.authlibinjector.location=<path>` | 設定 authlib-injector JAR 檔的位置 | 使用 HMCL 內置的 authlib-injector | | |
| 98 | +| | `-Dhmcl.openjfx.repo=<maven repository url>` | 添加用於下載 OpenJFX 的自訂 Maven 倉庫 | | | |
| 99 | +| | `-Dhmcl.native.encoding=<encoding>` | 設定原生編碼 | 使用系統的本機編碼 | | |
| 100 | +| | `-Dhmcl.microsoft.auth.id=<App ID>` | 設定 Microsoft OAuth App ID | 使用 HMCL 內建的 Microsoft OAuth App ID | | |
| 101 | +| | `-Dhmcl.microsoft.auth.secret=<App Secret>` | 設定 Microsoft OAuth App 金鑰 | 使用 HMCL 內建的 Microsoft OAuth App 金鑰 | | |
| 102 | +| | `-Dhmcl.curseforge.apikey=<Api Key>` | 設定 CurseForge API 金鑰 | 使用 HMCL 內建的 CurseForge API 金鑰 | | |
| 103 | +| | `-Dhmcl.native.backend=<auto/jna/none>` | 設定 HMCL 使用的本機後端 | `auto` | |
| 104 | +| | `-Dhmcl.hardware.fastfetch=<true/false>` | 設定是否使用 fastfetch 檢測硬體資訊 | `true` | |
| 105 | + |
0 commit comments