javafx - 您如何运行 jlink 为您的 JavaFX 应用程序创建运行时?
问题描述
背景故事:我正在尝试将我的 openJDK11、openJFX 应用程序分发给我的朋友。我正在使用本教程: https ://medium.com/azulsystems/using-jlink-to-build-java-runtimes-for-non-modular-applications-9568c5e70ef4
您可以在这里看到 javafx 在我的依赖项中列出:
您可以在此处看到我的模块信息已设置为运行应用程序可能需要:
module FractalFriend_m {
requires javafx.base;
requires javafx.controls;
requires javafx.fxml;
requires javafx.graphics;
opens com.potatospy;
}
您可以在这里看到我的 VM 选项输入正确:
--module-path=C:\Users\USERNAME\Documents\javafx-sdk-11.0.2\lib --add-modules=javafx.controls,javafx.fxml,javafx.base,javafx.graphics
跑步:
jdeps --module-path C:\Users\USERNAME\Documents\javafx-sdk-11.0.2\lib --list-deps FractalFriend_m.jar
结果是:
java.base
javafx.base
javafx.controls
javafx.fxml
javafx.graphics
最后,我运行 jlink 以希望产生任何人都可以运行的东西:
jlink --no-header-files --no-man-pages --compress=2 --strip-debug --add-modules javafx.controls,javafx.fxml,javafx.base,javafx.graphics --output java-runtime
结果是:
错误:找不到模块 javafx.base
解决方案
JavaFX 应单独下载,并在调用 jlink 时应使用 -p (--module-path) 参数指定。
jlink --no-header-files --no-man-pages --compress=2 --strip-debug -p <path_java_fx_sdk_lib> --add-modules javafx.controls,javafx.fxml,javafx.base,javafx.graphics --output java-runtime
推荐阅读
- c# - 使用 Emgu CV 将图像保存到文件夹
- python - pandas 数据帧中的 Isna() 函数返回布尔值,但它将我的数据帧转换为 NaN,为什么?
- c - 计算 Line 和 Arc 之间的交点
- recursion - 在递归函数中链接本地迭代器时出现 Rust Lifetime 问题
- c# - 检测玩家何时与粒子碰撞 - Unity
- python - Asyncpg/PostgreSQL (python/discord.py)
- android - 垂直向下滑动动画在 iOS 上不起作用
- python - AssertionError: 301 != 200 : 无法检索重定向页面
- macos - Valet Plus 安装问题 - MacOS Catalina
- spring - 为什么我不能在 JPA 中删除此实体?