HMCL-dev / HMCL-dev/HMCL

[Bug] Linux系统使用桌面图标启动时无法自动更新

Open
#4,589 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

question
Dominant language
Java
Stars
10.1k
Forks
934
Avg merge
1d 5h
Merged PRs (30d)
82

Description

问题描述 | Bug Description

当使用桌面图标的方式启动HMCL并进行自动更新后,更新文件可以正常下载,但并没有正确安装。下载完成后,HMCL会自动关闭,但没有再启动,更新也没有安装好。如果手动新开一个终端并通过java -jar运行,则下载更新后可以正常重启HMCL并安装更新。

启动器崩溃报告 / 启动器日志文件 | Launcher Crash Report / Launcher Log File

[14:47:15] [@.util.SelfDependencyPatcher.patch/INFO] Missing JavaFX dependencies, attempting to patch in missing classes
[14:47:15] [@.util.SelfDependencyPatcher.loadFromCache/INFO] - Loading dependencies...
[14:47:15] [@.util.SelfDependencyPatcher.patch/INFO] - Done!
[14:47:15] [@.Launcher.main/INFO] *** HMCL 3.6.17.296 ***
[14:47:15] [@.Launcher.main/INFO] Operating System: Arch Linux (Linux 6.16.10-arch1-1)
[14:47:15] [@.Launcher.main/INFO] System Architecture: x86-64
[14:47:15] [@.Launcher.main/INFO] Native Encoding: UTF-8
[14:47:15] [@.Launcher.main/INFO] JNU Encoding: UTF-8
[14:47:15] [@.Launcher.main/INFO] Java Architecture: x86-64
[14:47:15] [@.Launcher.main/INFO] Java Version: 17.0.16, Arch Linux
[14:47:15] [@.Launcher.main/INFO] Java VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), Arch Linux
[14:47:15] [@.Launcher.main/INFO] Java Home: /usr/lib/jvm/java-17-openjdk
[14:47:15] [@.Launcher.main/INFO] Current Directory: /home/duanyb/hmcl
[14:47:15] [@.Launcher.main/INFO] HMCL Global Directory: /home/duanyb/.local/share/hmcl
[14:47:15] [@.Launcher.main/INFO] HMCL Current Directory: /home/duanyb/hmcl/.hmcl
[14:47:15] [@.Launcher.main/INFO] HMCL Jar Path: /home/duanyb/hmcl/hmcl-dev-3.6.15.290.jar
[14:47:15] [@.Launcher.main/INFO] HMCL Log File: /home/duanyb/hmcl/.hmcl/logs/2025-10-03T14-47-15.log
[14:47:15] [@.Launcher.main/INFO] JVM Max Memory: 3878 MiB
[14:47:15] [@.Launcher.main/INFO] Metaspace: 5.55 MiB
[14:47:15] [@.Launcher.main/INFO] Native Backend: None
[14:47:15] [@.Launcher.main/INFO] XDG Session Type: wayland
[14:47:15] [@.Launcher.main/INFO] XDG Current Desktop: KDE
[14:47:15] [@.util.platform.SystemInfo.initialize/INFO] System Info:

  • CPU: Intel Core i7-1065G7 (4 Cores / 8 Threads)
  • GPU 1: Intel Iris Plus Graphics G7 [Discrete]
  • GPU 2: AMD Radeon 540X Series [Discrete]
  • Memory: 4.7 GiB / 15.14 GiB (31%)
    [14:47:15] [@.Launcher.start/INFO] JavaFX Version: 21.0.8+2
    [14:47:15] [@.Launcher.start/INFO] Prism Pipeline: com.sun.prism.es2.ES2Pipeline
    [14:47:15] [@.Launcher.start/INFO] Dark Mode: false
    [14:47:15] [@.Launcher.start/INFO] Reduced Motion: false
    [14:47:15] [@.setting.ConfigHolder.init/INFO] Config location: /home/duanyb/hmcl/.hmcl/hmcl.json
    [14:47:15] [@.task.AsyncTaskExecutor.lambda$executeNormalTask$19/TRACE] Executing task: org.jackhuang.hmcl.game.GameRepository.refreshVersionsAsync(GameRepository.java:91)
    [14:47:15] [@.task.AsyncTaskExecutor.lambda$executeNormalTask$19/TRACE] Executing task: org.jackhuang.hmcl.game.GameRepository.refreshVersionsAsync(GameRepository.java:91)
    [14:47:15] [@.event.EventBus.fireEvent/INFO] RefreshingVersionsEvent [source=HMCLGameRepository [versions=null, baseDirectory=.minecraft]] gets fired
    [14:47:15] [@.event.EventBus.fireEvent/INFO] RefreshingVersionsEvent [source=HMCLGameRepository [versions=null, baseDirectory=.minecraft]] gets fired
    [14:47:16] [@.ui.Controllers.initialize/INFO] Start initializing application
    [14:47:16] [@.event.EventBus.fireEvent/INFO] LoadedOneVersionEvent [source=HMCLGameRepository [versions=null, baseDirectory=.minecraft], version=Version [id=hanjia1.20.1]] gets fired
    [14:47:16] [@.event.EventBus.fireEvent/INFO] LoadedOneVersionEvent [source=HMCLGameRepository [versions=null, baseDirectory=.minecraft], version=Version [id=hanjia1.20.1]] gets fired
    [14:47:16] [@.event.EventBus.fireEvent/INFO] LoadedOneVersionEvent [source=HMCLGameRepository [versions=null, baseDirectory=.minecraft], version=Version [id=1.20.1-Forge]] gets fired
    [14:47:16] [@.event.EventBus.fireEvent/INFO] LoadedOneVersionEvent [source=HMCLGameRepository [versions=null, baseDirectory=.minecraft], version=Version [id=guoqing1.20.1]] gets fired
    [14:47:16] [@.event.EventBus.fireEvent/INFO] LoadedOneVersionEvent [source=HMCLGameRepository [versions=[1.20.1-Forge, guoqing1.20.1, hanjia1.20.1], baseDirectory=.minecraft], version=Version [id=1.20.1-Forge]] gets fired
    [14:47:16] [@.event.EventBus.fireEvent/INFO] LoadedOneVersionEvent [source=HMCLGameRepository [versions=[1.20.1-Forge, guoqing1.20.1, hanjia1.20.1], baseDirectory=.minecraft], version=Version [id=guoqing1.20.1]] gets fired
    [14:47:16] [@.event.EventBus.fireEvent/INFO] RefreshedVersionsEvent [source=HMCLGameRepository [versions=[1.20.1-Forge, guoqing1.20.1, hanjia1.20.1], baseDirectory=.minecraft]] gets fired
    [14:47:16] [@.event.EventBus.fireEvent/INFO] RefreshedVersionsEvent [source=HMCLGameRepository [versions=[1.20.1-Forge, guoqing1.20.1, hanjia1.20.1], baseDirectory=.minecraft]] gets fired
    [14:47:16] [@.task.AsyncTaskExecutor.lambda$executeNormalTask$29/TRACE] Task finished: org.jackhuang.hmcl.game.GameRepository.refreshVersionsAsync(GameRepository.java:91)
    [14:47:16] [@.task.AsyncTaskExecutor.lambda$executeNormalTask$29/TRACE] Task finished: org.jackhuang.hmcl.game.GameRepository.refreshVersionsAsync(GameRepository.java:91)
    [14:47:16] [@.java.JavaManager.searchPotentialJavaExecutables/TRACE] Finished Java lookup, found 3
  • JRE 1.8.0_462 (x86-64, Unknown): /usr/lib/jvm/java-8-openjdk/jre/bin/java
  • JDK 17.0.16 (x86-64, Arch Linux): /usr/lib/jvm/java-17-openjdk/bin/java
  • JDK 21.0.8 (x86-64, Arch Linux): /usr/lib/jvm/java-21-openjdk/bin/java
    [14:47:16] [@.setting.FontManager.findByFcMatch/INFO] Load font file: /usr/local/share/fonts/m/msyh.ttc
    [14:47:16] [@.setting.FontManager./INFO] Font: Microsoft YaHei
    [14:47:16] [@.auth.microsoft.MicrosoftService.lambda$new$0/INFO] Fetching properties of b38bed51-6941-43e9-b6ff-0ec4d5800a9b
    [14:47:16] [@.auth.authlibinjector.AuthlibInjectorServer.refreshMetadata/INFO] authlib-injector server metadata refreshed: https://littleskin.cn/api/yggdrasil/
    [14:47:17] [@.util.FileSaver.saveSync/INFO] Saving file /home/duanyb/hmcl/.hmcl/hmcl.json
    [14:47:17] [@.upgrade.IntegrityChecker.isSelfVerified/INFO] Successfully verified current JAR
    [14:47:17] [@.upgrade.UpdateChecker.lambda$requestCheckUpdate$2/INFO] Latest version (DEVELOPMENT) is [3.6.18.297 from http://mirrors.cloud.tencent.com/nexus/repository/maven-public/org/glavo/hmcl/hmcl-dev/3.6.18.297/hmcl-dev-3.6.18.297.jar]
    [14:47:17] [@.ui.construct.JFXDialogPane.push/INFO] JFXDialogPane@5fbbb7e8 [MessageDialogPane@24c063e2[styleClass=jfx-dialog-layout]]

//这是HMCL更新失败后,手动重启到进入主界面的日志

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the update flow around UpdateChecker and the launcher startup path shown in the log, comparing desktop-icon launches with java -jar. Reproduce the update on Linux, then verify that the downloaded update installs and HMCL restarts when launched from a desktop icon.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
desktop, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.