考虑到现在 hmcl 对于缺失 javafx 的情况会自动下载所需的资源,我认为直接去除 java-openjfx 并不考虑任何搜索是一个可行的措施
但是 JAVA_HOME
和 java 必须配套,请至少 export PATH="$JAVA_HOME/bin:$PATH"
Search Criteria
Package Details: hmcl-bin 3.6.12-4
Package Actions
Git Clone URL: | https://aur.archlinux.org/hmcl-bin.git (read-only, click to copy) |
---|---|
Package Base: | hmcl-bin |
Description: | A Minecraft Launcher which is multi-functional, cross-platform and popular. |
Upstream URL: | https://github.com/huanghongxun/HMCL |
Licenses: | GPL3 |
Conflicts: | hmcl |
Provides: | hmcl |
Replaces: | hmcl-stable-bin |
Submitter: | so1ar |
Maintainer: | TTsdzb (hour-keeper) |
Last Packager: | hour-keeper |
Votes: | 13 |
Popularity: | 0.31 |
First Submitted: | 2021-10-04 12:37 (UTC) |
Last Updated: | 2025-04-06 05:51 (UTC) |
Dependencies (2)
- gtk2 (gtk2-patched-filechooser-icon-viewAUR)
- java-runtime (jre10AUR, jre12AUR, jdk10AUR, jdk10-openj9-binAUR, jdk7AUR, jre7AUR, amazon-corretto-16AUR, jdk8-graalvm-binAUR, jdk16-graalvm-binAUR, jdk16-adoptopenjdkAUR, liberica-jre-11-binAUR, jdk11-j9-binAUR, jre16-openjdkAUR, jre14-openjdkAUR, jre15AUR, jre14AUR, jre13AUR, jre16AUR, jre18-openjdkAUR, amazon-corretto-19-binAUR, jdk19-graalvm-binAUR, liberica-jre-11-full-binAUR, jdk19-graalvm-ee-binAUR, jdk13-openjdk-binAUR, liberica-jre-8-full-binAUR, jdk11-graalvm-binAUR, jre-openj9AUR, jdk11-graalvm-ee-binAUR, jre12-openjdkAUR, jdk11-dragonwell-standard-binAUR, jdk11-jetbrains-binAUR, jdk20-graalvm-binAUR, jdk17-graalvm-binAUR, jdk20-openj9-binAUR, zulu-13-binAUR, jdk8-dragonwell-extended-binAUR, jdk8-dragonwell-standard-binAUR, jdk11-dragonwell-extended-binAUR, jdk8-j9-binAUR, jdk7-j9-binAUR, jdk7r1-j9-binAUR, jre13-openjdkAUR, jre15-openjdkAUR, jdk21-graalvm-binAUR, jre17-jetbrainsAUR, microsoft-openjdk-11-binAUR, microsoft-openjdk-17-binAUR, microsoft-openjdk-21-binAUR, liberica-nik-24-full-binAUR, jre21-jetbrains-gitAUR, jdk21-jetbrains-gitAUR, zulu-8-binAUR, mandrel-binAUR, mandrel24-binAUR, liberica-jdk-11-lite-binAUR, jdk17-graalvm-ee-binAUR, jdk22-graalvm-ee-binAUR, jdk20-graalvm-ee-binAUR, jdk22-graalvm-binAUR, jre19-openjdkAUR, zulu-jdk-fx-binAUR, jre21-jetbrainsAUR, jdk17-zulu-prime-binAUR, zulu-fx-binAUR, zulu8-fx-binAUR, zulu11-fx-binAUR, zulu17-fx-binAUR, zulu21-fx-binAUR, jdk11-openj9-binAUR, jre-zulu-binAUR, jre-zulu-fx-binAUR, jdk-android-studioAUR, jdk-openj9-binAUR, zulu-11-binAUR, jdk8-graalvm-ee-binAUR, jre11AUR, jre17AUR, jdk21-graalvm-ee-binAUR, jdk8-openj9-binAUR, jre-zuluAUR, jre-zulu-fxAUR, jre8AUR, jdk8AUR, amazon-corretto-17AUR, amazon-corretto-21-binAUR, jdk23-graalvm-ee-binAUR, openjdk-zulu8-ca-fx-binAUR, openjdk-zulu11-ca-fx-binAUR, openjdk-zulu17-ca-fx-binAUR, openjdk-zulu21-ca-fx-binAUR, openjdk-liberica8-full-binAUR, openjdk-liberica11-full-binAUR, openjdk-liberica17-full-binAUR, openjdk-liberica21-full-binAUR, openjdk-zulu-ca-fx-binAUR, openjdk-liberica-full-binAUR, jdk24-graalvm-ee-binAUR, jdk8-perfAUR, zing-21-binAUR, jdk17-jetbrains-binAUR, jdk21-dragonwell-standard-binAUR, java-openjdk-binAUR, jdk24-graalvm-ce-binAUR, jreAUR, jdkAUR, jre-ltsAUR, jdk-ltsAUR, liberica-jdk-full-binAUR, liberica-jdk-21-full-binAUR, liberica-jdk-8-full-binAUR, jdk8-dragonwell-extendedAUR, liberica-jdk-11-binAUR, zulu-17-binAUR, liberica-jdk-11-full-binAUR, liberica-jdk-21-binAUR, zulu-17-fx-binAUR, liberica-jdk-17-full-binAUR, zulu-21-binAUR, amazon-corretto-8AUR, amazon-corretto-11AUR, jdk-temurinAUR, jdk21-temurinAUR, jdk17-temurinAUR, jdk11-temurinAUR, zing-8-binAUR, jre21-zulu-binAUR, jre17-zulu-binAUR, zulu-24-binAUR, jdk23-temurinAUR, liberica-nik-23-full-binAUR, zing-23-binAUR, jre22-openjdkAUR, jdk22-openjdkAUR, jre23-openjdkAUR, jdk23-openjdkAUR, jdk21-openj9-binAUR, jdk17-openj9-binAUR, zulu-jre-fx-binAUR, jdk8-temurinAUR, jdk24-graalvm-binAUR, jdk17-dragonwell-standard-binAUR, jdk21-dragonwell-extended-binAUR, jdk21-jetbrains-binAUR, jre-openjdk-wakefieldAUR, jdk-openjdk-wakefieldAUR, jre-jetbrainsAUR, java-openjdk-ea-binAUR, jdk-openjdk, jdk11-openjdk, jdk17-openjdk, jdk21-openjdk, jre-openjdk, jre11-openjdk, jre17-openjdk, jre21-openjdk, jre8-openjdk)
Required by (0)
Sources (4)
c1trus commented on 2024-03-13 03:08 (UTC)
c1trus commented on 2024-03-13 02:53 (UTC)
默认的 java 与找到的包含 java-openjfx 的 java 不一致导致问题。
❯ which java
/usr/bin/java
❯ pacman -Qo java
/usr/bin/java 由 java-runtime-common 3-5 所拥有
❯ pacman -Ql java-openjfx | grep javafx | head -n 1 | cut -d / -f 5
liberica-jdk-full
❯ hmcl-bin
Error occurred during initialization of boot layer
java.lang.module.FindException: Module javafx.base not found
❯ /usr/lib/jvm/liberica-jdk-full/bin/java -jar /usr/share/java/hmcl-bin/hmcl-bin.jar
[10:48:47] [org.jackhuang.hmcl.Launcher.main/INFO] *** HMCL 3.5.6.241 ***
......(正常启动界面)
如果说通过设置 JAVA_HOME
本应当可以正确搜索,那么版本不一致可能是问题所在
❯ java -version
java version "17.0.10" 2024-01-16 LTS
Java(TM) SE Runtime Environment (build 17.0.10+11-LTS-240)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.10+11-LTS-240, mixed mode, sharing)
❯ /usr/lib/jvm/liberica-jdk-full/bin/java -version
openjdk version "21.0.2" 2024-01-16 LTS
OpenJDK Runtime Environment (build 21.0.2+14-LTS)
OpenJDK 64-Bit Server VM (build 21.0.2+14-LTS, mixed mode, sharing)
Eeviriyi commented on 2024-03-11 01:31 (UTC)
please update the sha256sum
TTsdzb commented on 2024-03-10 02:15 (UTC)
hmcl-launch-script
的 sha256sum 不正确导致近两个版本均无法自动构建,请您修复一下,感谢
yataro commented on 2024-03-06 16:29 (UTC)
Could you fix the hashsums?
yataro commented on 2024-03-06 11:55 (UTC)
==> Validating source files with sha256sums...
hmcl.desktop ... Passed
hmcl-launch-script ... FAILED
craft_table.png ... Passed
LICENSE ... Passed
hmcl-bin-3.5.6.239-1.jar ... Passed
==> ERROR: One or more files did not pass the validity check!
HinataAoi commented on 2024-02-25 14:00 (UTC) (edited on 2024-02-25 14:01 (UTC) by HinataAoi)
另外我之前提到的这个问题还是在,麻烦一并修改一下.把当时的内容粘贴过来了:
我这边出现了问题,因为我这边默认调用的jre是zulu-21-bin.而启动脚本最后一行--module-path指定的却是pacman查询的java-openjfx依赖的提供者的lib目录,在我这里就是指向了zulu-jre-fx-bin的lib目录.
导致的情况就是zulu-21-bin在尝试使用zulu-jre-fx-bin的lib目录
我不懂java,不清楚jre不同版本间是否能用彼此的lib目录,但我这里确实出现了问题.会提示"Module javafx.base not found"
也许可以把最后一行里的java改成"${JAVA_HOME}"/bin/java?
另外hmcl.desktop里抄错抄成exec=hmcl-stable-bin了
HinataAoi commented on 2024-02-25 13:57 (UTC)
筛选jfx的部分我也不知道能不能再改进,我上面给出的就是从你们之前的版本抄的,不知道有没有更好的筛选方法.不过可以确定的是类似'java-openjfx-bin'这个包就有问题.因为这个包没按照规范把jfx存在/usr/lib下.不过我觉得这种问题是那个包导致的我们不用管.
另外看了一下改动历史,java-openjfx
还在依赖里,应该放到可选依赖吧.
Bot-wxt1221 commented on 2024-02-25 13:19 (UTC) (edited on 2024-02-25 13:21 (UTC) by Bot-wxt1221)
这正是我想要用的,我正在改,但是貌似出了一点问题。
另外,请问目前探测jfx的方式是否有任何问题。
@HinataAoi
HinataAoi commented on 2024-02-25 09:03 (UTC) (edited on 2024-02-25 09:06 (UTC) by HinataAoi)
我之前遇到问题那句指令怎么躺枪了😂,又变成用A包调用B包的lib目录了.
对于楼上yataro提到的问题,其实可以这样解决:
把java-openjfx
改为可选依赖,然后在launch-script中用之前的方法筛一下有没有安装,有的话就用jfx启动.不过不建议采用楼上提到的hmcl-new的筛选jfx的方法,至少我用的这个jfx就有问题,会被筛没.
我按着这个思路试着写了一下:
JAVAFX_HOME=$(pacman -Ql java-openjfx | grep javafx | head -n 1 | cut -d / -f 5)
if [ -n "${JAVAFX_HOME}" ]; then
exec /usr/lib/jvm/"${JAVAFX_HOME}"/bin/java --module-path "${JAVAFX_HOME}/lib/javafx.base.jar:${JAVAFX_HOME}/lib/javafx.fxml.jar:${JAVAFX_HOME}/lib/javafx.graphics.jar:${JAVAFX_HOME}/lib/javafx.media.jar:${JAVAFX_HOME}/lib/javafx.swing.jar:${JAVAFX_HOME}/lib/javafx.web.jar:${JAVAFX_HOME}/lib/javafx.controls.jar" --add-modules=javafx.base --add-modules=javafx.fxml --add-modules=javafx.graphics --add-modules=javafx.media --add-modules=javafx.swing --add-modules=javafx.web --add-modules=javafx.controls -jar /usr/share/java/hmcl-bin/hmcl-bin.jar "$@"
else
exec java -jar /usr/share/java/hmcl-bin/hmcl-bin.jar "$@"
fi
这样的话再把PKGBUILD里面的java-openjfx
改成可选依赖就行了,如果检索到本地已经安装的jfx就会优先调用.如果只有java-runtime
的话就直接启动让hmcl自己解决jfx的问题.
@Bot-wxt1221
Pinned Comments
hour-keeper commented on 2025-04-06 06:29 (UTC) (edited on 2025-04-06 06:53 (UTC) by hour-keeper)
官方文档以及.sh脚本都会推荐使用liberica-jdk作为运行时,但.exe会推荐下载Microsoft Build of Openjdk作为运行时
TTsdzb commented on 2025-04-06 05:24 (UTC) (edited on 2025-04-06 06:01 (UTC) by TTsdzb)
已修改。经测试官方启动脚本并不会寻找运行时外的 OpenJFX,因此我们直接移除了该依赖。如果你不喜欢下载,请自行安装具有 JavaFX 库的运行时,并在必要时手动指定
HMCL_JAVA_HOME
或JAVA_HOME
环境变量。TTsdzb commented on 2025-04-02 14:38 (UTC)
自 3.6.12-2 起使用官方的 Shell 脚本替代了原先的独立 jar 文件。如果你需要找回原先的配置,请将
$XDG_CONFIG_PATH/hmcl/hmcl.json
(一般为~/.config/hmcl/hmcl.json
)移动到~/.hmcl.json
。