我不是一个开发者。
由于Oracle JDK被授权用于商业用途,我正在尝试找出OpenJDK 8是否是一个好的替代方案。(注意:我们环境中的所有其他基于Java的应用程序都是基于Java 1.8的。因此,我们不能超越OpenJDK 8)
我都试过了!我下载了AdoptOpenJDK 8,并将其解压到本地目录中。我将系统Path变量设置为各自的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 (甲骨文OpenJDK 8、AdoptOpenJDK 8、祖鲁OpenJDK 8、Libertica OpenJDK 8)都出现了相同的错误。
我想知道我是否可以和OpenJDK 8一起在一个单独的目录中安装OpenJFX或javafx,然后启动我的工具。或者,在安装了OpenJDK 8而不是Oracle JDK的情况下启动/使用该工具,是否有其他选择可供考虑?
发布于 2020-11-17 01:37:49
您需要一个与JavaFX库的副本捆绑在一起的JVM for Java8。
有几个供应商提供了这一功能。
要知道,这两家供应商都提供了他们的Java实现的两种变体:一种没有JavaFX,另一种有JavaFX。请确保您访问的是符合您需求的正确地址。
下面是我制作的一个流程图,作为选择Java供应商的指导。

https://stackoverflow.com/questions/64862466
复制相似问题