[Bug] Linux系统使用桌面图标启动时无法自动更新
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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