Ubuntu 19.04 Java运行HMCL最新版缺少JavaFX
~/桌面/HMCL$ java -jar ./HMCL-3.2.130.jar
JavaFX 缺失。
如果您使用的是 Java 11 或更高版本,请降级到 Java 8 或 10。
如果您使用的是 OpenJDK,请确保其包含 OpenJFX。
A fatal error has occurred, forcibly exiting. 展开
Java分开JavaFX是今后的发展方向,关于新版Java如何运行带有JavaFX的应用,这里参考JavaFX 11 的官方文档进行测试后给出能够运行HMCL的方法。
首先确保能运行普通的Java应用,题主能问这个问题那么肯定能正确配置Java,这一步忽略。
下载JavaFX。网页链接(编辑器智能识别后只能显示“网页链接”4个字,本来我想要显示完整链接的,可恶)。这里我用的是JavaFX Linux SDK。然后解压到一个固定目录。
然后配置环境变量:export PATH_TO_FX=/opt/javafx-sdk-11.0.2/lib。这里用之前解压目录进行配置。并且要令这个环境变量生效。
最后,也是主要的,启动时指定模块(这里把JavaFX能加上的模块都加上了):java --module-path $PATH_TO_FX --add-modules javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web -jar HMCL-3.2.136.jar
最后,为了证明我不是在敷衍地回答问题,我给出了我本地按照上面的方法成功运行软件的截图,有图有真相。
这表明该版本的HMCL使用了JavaFX来做图形界面;
问题出现的原因:
如果你安装的Java是版本太低,那么不包含javaFX;(Java8包含的JavaFX版本算是比较成熟稳定的一个版本了)
如果你安装的Java版本太高,还是不包含JavaFX( 因为Java11把JavaFX 移除JDK,并开源了成为OpenJDK的一部分)
解决方案如下:
[推荐] 安装合适的java版本,比如选择安装 java8 ~ java 10
[不推荐]安装OpenJDK 并整合 OpenJFX ; 使用这个JDK的一般是开发人员,所以普通用户不推荐使用
下载一个jre解压然后启动的时候指定这个目录里的java就可以了,根本不要前面说的这么复杂(而且HMCL只支持8-10版本的java)
jre下载地址:网页链接
sudo apt install default-jre openjfx
启动命令
java -jar --module-path /usr/share/openjfx/lib --add-modules=javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web -jar 你的文件
2020-02-22