【发布时间】:2019-06-09 11:51:43
【问题描述】:
我有一个 javaFx 应用程序开发:
- OpenJDK 11
- NetbeansIDE 10
- JavaFX 11
按照 javaFX 11 说明 (here),我创建了一个自包含的应用程序。
不幸的是,要启动应用程序需要一个长命令。像这样的:
dist/jlink/HelloFX/bin/java -m hellofx/org.openjfx.MainApp
这不是最终用户的最佳选择。
我的问题是:
- 如何创建易于分发和启动的 .exe (Windows) 和 .app (macOS)?
- 如何为应用添加图标(现在应用显示带有经典的 java 杯子图标)?
我找不到任何更新的路线。
谢谢。
【问题讨论】:
-
你可以提供一个
.batresp。包含命令的.sh文件。脚本也可以作为可执行文件 -
@Stultuske 这个独立的应用程序(通过
jlink)已经是特定于平台的;它将包含具有特定于平台的本机代码的 JavaFX 和 JDK 模块。我得到的印象是 Java 生态系统正在朝着封装在本地可执行文件中的自包含应用程序发展。我所看到的一切都表明,如今部署 JavaFX 应用程序需要针对每个目标平台使用不同的包。请注意,Java 代码 仍将是跨平台的。 -
@Stultuske:按照我遵循的过程,我得到了一个 jar 和一个包含一堆不同文件的目录。这并不容易分发、安装和运行。此外,javaFX 已经需要包含依赖于平台的 jmod。
-
@Lino。不幸的是,我认为这是唯一的选择。这意味着我必须分发一个带有一堆其他文件的 jar。不过 .bat 或 .sh 对用户并不友好。
-
有什么方法可以考虑在您的项目中使用 Gradle? NetBeans 10 具有运行
jlink的内置任务,但不适用于(传入的)jpackage工具。用 Ant 做这件事并不是很吸引人……