【问题标题】:Can I use javafx/openjfx with OpenJDK 8?我可以在 OpenJDK 8 中使用 javafx/openjfx 吗?
【发布时间】:2021-02-27 21:56:24
【问题描述】:

我不是开发人员。安装 OpenJDK 和 javafx 并设置环境“路径”变量后,我正在尝试启动和使用当前与 Oracle JDK 1.8 一起运行的基于 Java 的 Windows 桌面工具

由于 Oracle JDK 已获得商业使用许可,我正在尝试了解 OpenJDK 8 是否是一个不错的选择。 (注意:我们环境中所有其他基于 Java 的应用程序都是基于 Java 1.8。所以我们不能超越 OpenJDK 8)

我试过了! 我下载了 AdoptOpenJDK 8 并将其解压缩到本地目录中。 我将系统路径变量设置为相应的 JDK/bin 文件夹。 尝试启动我们基于 java 的工具并收到以下错误,因为缺少 javafx 组件。 对其他 OpenJDK 8 选项重复相同的步骤。

Exception in thread "UI:MainUI" java.lang.NoClassDefFoundError: javafx/embed/swing/JFXPanel
Caused by: java.lang.ClassNotFoundException: javafx.embed.swing.JFXPanel
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)

由于 javafx 是内置在 Oracle JDK 中的,因此我们在使用它时不会出现此错误。但是对于我尝试过的所有 OpenJDK 8(Oracle OpenJDK 8、AdoptOpenJDK 8、Zulu OpenJDK 8、Libertica OpenJDK 8)都出现了相同的错误。

试图找出是否可以将 OpenJFX 或 javafx 与 OpenJDK 8 一起安装在单独的目录中并启动我的工具。或者,在安装 OpenJDK 8 而不是 Oracle JDK 的情况下启动/使用该工具是否有其他选择?

【问题讨论】:

    标签: java javafx


    【解决方案1】:

    您需要一个与 JavaFX 库副本捆绑在一起的 Java 8 JVM。

    一些供应商提供。

    • Azul Systems 就是这样的供应商之一。请参阅 this company blog post 描述他们的 ZuluFX 产品、Java 8 以及更高版本的 Java 的实现。
    • BellSoft 的 LibericaFX 是另一种此类产品。

    了解这两家供应商都提供了其 Java 实现的两种变体:一种没有 JavaFX,一种带有 JavaFX。确保您访问的是适合您需要的那个。

    这是我在选择 Java 供应商时制作的流程图。

    【讨论】:

      猜你喜欢
      • 2015-01-20
      • 2020-08-30
      • 2019-10-07
      • 1970-01-01
      • 1970-01-01
      • 2020-09-07
      • 2019-06-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多