java - JavaFx:在构建时定义操作系统
问题描述
我有一个使用 javafx 的 java 11 项目。我不希望任何使用我的程序的人安装 javafx,所以我编写了一个引用 javafx 主类的主类(参见下面的代码)。所以我可以用“java -jar myJar.jar”启动 jar,它可以在任何地方运行,而无需安装 javafx。javafx 模块在 module-info.java 中定义。现在我遇到的问题是我的 jar 包含依赖于系统的 javafx 库。我在 linux 系统上构建,所以我有 .so 文件。我的一些客户使用 Windows 系统。所以它不在他们的系统上运行。他们是一种定义(在 maven 或 java 中)目标操作系统的方法吗?这样我就可以为 Windows 构建一个 jar 了吗?或者 Perhpas 还有另一种更好的方法来解决我的问题。谢谢!
public class A {
public static void main(String[] args) {
B.main(args);
}
}
public class B extends Application{
public static void main(String[] args) {
Application.launch(B.class, args);
}
}
解决方案
The way to go today is to package your JavaFX applications with jpackage
. Have a look at its documentation here: https://docs.oracle.com/en/java/javase/16/jpackage/packaging-overview.html#GUID-C1027043-587D-418D-8188-EF8F44A4C06A
推荐阅读
- mysql - 在presto MySQL中将时间戳转换为字符串?
- apache-spark - spark 3.2.0 与 2.4.8 中的结构化流检查点位置
- telegram - 如何将照片转发给作为机器人 Telethon 电报登录的用户
- python - 使用烧瓶会话查询仅获取单个字段数据
- r - 从单个数据库中以 R 降价创建个人(逐行/每个参与者)pdf 报告
- php - Laravel 8 - Windows - 包发现 post-autoload-dump 事件返回错误代码 255
- python - 如何用某个类刮掉href标签?
- google-apps-script - 如何为每个谷歌应用脚本创建一个日历事件的链接(url)
- flutter - Drawer Widget - 更改 Scaffold 正文内容
- python - BeautifulSoup find_all 函数返回一个空列表 []