【问题标题】:Can I make an installable 32-bit version of my app using jpackage (Java 17)我可以使用 jpackage (Java 17) 制作我的应用程序的可安装 32 位版本吗?
【发布时间】:2021-12-18 19:24:57
【问题描述】:

我使用 Java 17 和 JavaFX 16 库制作了一个应用程序。有没有办法使用它的 JPackage 制作可安装的 32 位版本?由于自 Java 9 以来 Java 总是只有 64 位(与 JavaFX 库相同),我怀疑这是不可能的,但有什么办法吗?

【问题讨论】:

  • 我认为不会。我不确定是否还有供应商提供 32 位 JRE,但即使是这种情况,如果 JavaFX 只提供 64 位 DLL,那么没有办法让它在 32 位上工作您自己尝试构建这些库的 32 位版本。
  • @jewelsea Azul JDK 在 windows 下运行良好(我用的是 windows,我的客户端(32 位操作系统)也用 windows),谢谢你的帮助!
  • 用答案替换了 cmets。

标签: java javafx javafx-11 jpackage java-17


【解决方案1】:

是的,您可以使用 jpackage (Java 17) 制作可安装的 32 位版本的 JavaFX 应用程序。

Azul Zulu 为各种平台提供32 bit JDK+JavaFX 17 downloads。切换您的应用程序以使用它并使用该 JDK 打包它。这样做时,(我认为)没有必要提供 JavaFX Maven 依赖项,因为 JavaFX 模块已经可以从 Azul JDK+JavaFX 平台发行版中获得。

我不会在此处提供有关如何使用 jpackage 的完整步骤,因为这已在其他地方记录和讨论。

来自原始海报的 cmets,此方法有效:

Azul JDK 在 windows 中完美运行(我使用的是 windows,我的客户端(有 32 位操作系统)也使用 windows)

JavaFX packages in Maven central 可用于各种操作系统和32-bit or 64-bit 平台架构。

您可以使用分类器 similar to this example (without the shading) 从特定架构(或架构组合)中选择作为 Maven 中的依赖项。

如果你走这条路,你需要确保在进行打包时正确选择了适当的底层 JDK(选择 32 位 JDK 构建而不是 64 位 JDK 构建)。同样,Azure Zulu(可能还有其他 JDK 供应商)提供您可以使用的 32 位 JDK 构建。

如果您的目标设备是 Mac,Mac OS X does not support 32-bit apps,因此没有适用于 Mac 的 32 位 Java/JavaFX 构建,只有针对英特尔芯片或新 Apple M1 芯片的 64 位构建。

具有二进制 JavaFX 构建的受支持架构示例。这只是基于对 JavaFX Maven 存储库中二进制 jar 可用的分类器扩展的快速浏览。 cmets 只是我对这些是什么的猜测,而不是官方文档:

  • linux-aarch64 (linux arm v8 64 bit)。
  • linux-arm32(linux arm v7 32 位)。
  • linux(linux intel 64 位)。
  • mac-aarch64(mac M1 64 位)。
  • mac(mac 英特尔 64 位)。
  • win-x86(win 英特尔 32 位)。
  • win(win 英特尔 64 位)。

如果没有提供分类器,我认为构建会检查您当前的操作环境并选择最适合的。

此外,对于某些平台,分类器中还有带有 -monocle 后缀的构建,也可用于各种操作系统类型的 32 位和 64 位风格。这是针对嵌入式设备或无头设备(无显示器,例如服务器)并提供不使用操作系统提供的窗口系统的 JavaFX 版本(即窗口完全由 JavaFX 管理,而不是 X-windows 窗口管理器和不是 Windows 操作系统窗口管理器)并且可能使用软件渲染而不是硬件渲染。大多数人不需要这个,但如果有兴趣,请查看(最小)Monocle documentation

Gluon 通过Gluon Mobile 为各种移动架构提供JavaFX 支持。我相信它与 jpackage 解决方案不同,而是依赖于使用 GraalVM 的本机编译(但我可能错了,我没有调查过)。不管它是如何工作的,如果您需要针对移动设备进行 JavaFX 部署,我建议您咨询 Gluon 及其移动开发、打包和部署解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 2016-06-04
    相关资源
    最近更新 更多