【问题标题】:OpenJFX support for 32-bit systemsOpenJFX 对 32 位系统的支持
【发布时间】:2020-12-12 07:58:01
【问题描述】:

我想为 Windows x86 架构构建我的 JavaFX 应用程序。所以我下载了 Adopt OpenJdk 32-bit build 并用它来创建 Java Runtime Image。当我尝试运行应用程序时,出现以下错误:

Loading library api-ms-win-core-console-l1-1-0 from resource failed: java.lang.UnsatisfiedLinkError: C:\Users\admin01\.openjfx\cache\11.0.1\api-ms-win-core-console-l1-1-0.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform
java.lang.UnsatisfiedLinkError: C:\Users\admin01\.openjfx\cache\11.0.1\api-ms-win-core-console-l1-1-0.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform
        at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)

出现此错误是因为 openjfx:javafx-graphics 工件依赖于平台,并且它包含为 64 位架构编译的 DLL。

$ file api-ms-win-core-console-l1-1-0.dll
api-ms-win-core-console-l1-1-0.dll: PE32+ executable (DLL) (console) x86-64, for MS Windows

Maven Central 中没有 32 位 OpenJFX 版本。

是否有可能在某处获得 x86 版本?或者我怎样才能自己构建它?

【问题讨论】:

    标签: java openjfx


    【解决方案1】:

    Liberica OpenJDK 12 可用于 32 位 Windows,包括 OpenJFX。据我所知,它是唯一公开可用的 JDK,包括 32 位 openjfx 参考。 https://bell-sw.com/pages/java-12

    截至目前(2019 年 4 月 16 日):

    • Zulu OpenJDK 未公开用于 32 位 Windows,而且从未收到任何对 32 位请求的回复
    • Amazon Corretto 仅适用于 Java 8,不支持完整的 Javafx(缺少 webkit 库)

    【讨论】:

    • 更新(2019 年 9 月):Zulu 现在为 OpenJDK 8 和 12 提供公共 win-32 构建,包括 FX azul.com/downloads/zulu-community/…
    • Zulu 似乎已经放弃了针对 Win32 的 JavaFX 构建。您目前必须选择 Older Zulu versions 才能获得内置 JavaFX 的 32 位 JRE。
    【解决方案2】:

    您可以尝试自己构建它。
    可在此处找到包含说明的文档:
    https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX

    说明并没有完美运行(至少对我而言)。
    我必须安装 DirectX SDK(从 2010 年 6 月开始),并且必须设置更多环境变量(WINSDK_DIR 和 DXSDK_DIR)。
    有关一般构建过程的其他信息也可以在这里找到:
    https://github.com/SkyLandTW/OpenJFX-binary-windows)

    对于我的设置,我还必须传递一些 gradle 属性,所以我的调用如下所示:
    gradle clean sdk --no-daemon -PWINDOWS_SDK_VERSION=10.0.17763.0 -PWINDOWS_VS_VSINSTALLDIR="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"

    但是,请注意“构建 OpenJFX”页面(参见上面的链接)将“64 位操作系统”作为 Windows 平台的先决条件,因此目前很可能不正式支持 32 位 OpenJFX 构建...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-10
      • 2021-05-28
      • 2020-03-08
      • 1970-01-01
      • 2012-03-20
      • 2016-05-08
      • 1970-01-01
      相关资源
      最近更新 更多