部署后如何维护javafx桌面应用程序

我是 JavaFx 领域的新手,我从未将任何应用程序部署到任何客户端。我知道如何制作桌面应用程序,但我遇到了问题。

当我将应用程序部署到客户端机器时,我们知道更改是不可避免的,并且在某个时间点,我的客户可能会要求我对现有应用程序进行一些更改,那么我该如何实现。

我是否必须在客户端计算机上重新安装新的 javafx 应用程序以替换旧的应用程序(但这将完全混乱)还是有更好的方法我应该知道?

回答

tl;博士

你问:

我是否必须在客户端计算机上重新安装新的 javafx 应用程序

是的。

从用户的角度来看,将您的应用程序作为独立的“可双击”应用程序交付,就像任何其他本机应用程序一样运行。通过捆绑一个JVM 来做到这一点。

任何这些变化:

  • 主机操作系统中的错误修复或更新
  • Java 中的错误修复或更新
  • 捆绑的 Java 实现中的错误修复或更新
  • 错误修复或更新您的应用程序代码库

……这意味着您需要使用捆绑的 JVM 和 OpenJFX 库构建应用程序的新版本,然后重新安装到用户的机器上。

重新安装应用程序可以由用户手动完成,由数字分发平台(如 Apple App Store)自动完成,在企业中由桌面管理工具自动完成,或由商业应用程序安装工具半自动完成。

细节

您应该阅读 Oracle 白皮书,更新于 2020 年 5 月 11 日,Java 客户端路线图更新

Oracle 基本上不再期望 Java 安装在用户的机器上。现在,您应该在您的应用程序中捆绑一个 Java 运行时。这意味着您必须为您选择支持的每个主机操作系统(例如 macOS、BSD、Linux、Microsoft Windows)以及您选择支持的每个硬件平台(例如 AMD/Intel 和 ARM/Apple Silicon)构建应用程序版本.

不利的一面是,这意味着必须交付多个工件。从好的方面来说,您将准确控制用于运行您的应用程序的 Java 版本。

苹果系统 Linux BSD 视窗
AMD/英特尔 ? ? ? ?
ARM/苹果芯片 ? ? ? ?

您还需要在您的应用程序中包含 OpenJFX 库。您可以通过配置Maven、Gradle或具有依赖项管理功能的类似构建工具方便地将它们包含在您的项目中。

Java 9 为我们带来了Java 平台模块系统。这使您能够将 Java 实现与您的应用程序合并,但仅使用您的应用程序实际需要的部分。所以最终结果更小,因为留下了不必要的库。

用于打包应用程序的工具不断得到改进和创新。我不是最新的,但从这里开始:

  • JEP 392:打包工具

此处发布了许多关于打包 JavaFX/OpenJFX 应用程序以进行部署的现有问题和解答。所以搜索以了解更多信息。请记住,该领域的最新技术目前正在迅速变化 - 请确保您获得最新的现代信息。

可能有商业应用程序安装程序工具供应商在这里提供帮助,但我不知道当前的市场。

这种在应用程序中捆绑 Java 的做法在 macOS 上实际上是过时的做法。多年来,人们一直在通过 Apple App Store 发布应用程序。现在这种做法正在成为跨平台的规范。

或者,如果您可以控制用户的机器,例如在企业环境中,您可以预先安装 Java 实现。至少有两个供应商提供了包含 OpenJFX 的 Java 实现:来自 BellSoft 的LibericaFX和来自 Azul Systems 的ZuluFX

另一种选择虽然处于前沿,但使用GraalVM生成具有提前编译的本机应用程序。

其他资源:

  • OpenJFX 主页
  • Gluon公司,OpenJFX 的主要管理者。他们出售培训、咨询和支持服务来帮助您。
  • 其他顾问也可能对 JavaFX 提供帮助。

您需要选择一个 Java 实现来与您的应用程序捆绑在一起。这是我制作的流程图以提供帮助。

  • @Slaw: See also [_GitHub Flavored Markdown: 4.10Tables (extension)_](https://github.github.com/gfm/#tables-extension-).

以上是部署后如何维护javafx桌面应用程序的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>