我可以在openjdk 8中使用javafx/openjfx吗?

1l5u6lss  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(764)

我不是开发人员。安装了openjdk和javafx,并设置了环境“path”变量,我正在尝试启动并使用一个基于java的windows桌面工具,该工具目前运行在oraclejdk1.8上
由于oraclejdk是被许可用于商业用途的,所以我试图找出openjdk8是否是一个好的替代品(注意:我们环境中所有其他基于java的应用程序都基于Java1.8。所以我们不能超越openjdk(8)
我试过的!我下载了openjdk8并将其解压到本地目录中。我将系统路径变量设置为相应的jdk/bin文件夹。尝试启动我们的基于java的工具,但由于缺少javafx组件而收到以下错误。对其他openjdk8选项重复相同的步骤。

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内置于oraclejdk中,因此在使用它时不会出现此错误。但是对于我尝试过的所有openjdk8(oracle openjdk8、adoptopenjdk8、zulu openjdk8、libertica openjdk8),都会得到相同的错误。
尝试找出是否可以将openjfx或javafx与openjdk8一起安装在单独的目录中,然后启动我的工具。或者,在启动/使用安装了openjdk8而不是oraclejdk的工具时,有没有其他的选择?

pgpifvop

pgpifvop1#

您需要一个与javafx库的副本捆绑在一起的java8的jvm。
一些供应商提供了这种服务。
azul systems就是这样一家供应商。请参阅这篇公司博客文章,其中描述了他们的zulufx产品,它是java8的一个实现以及java的更高版本。
bellsoft的libericafx是另一个这样的产品。
要知道这两个供应商都提供了两种不同的java实现:一种没有javafx,另一种有javafx。确保您访问的是适合您需要的。
下面是我做的一个流程图,作为选择java供应商的指导。

相关问题