我在使用 JavaFX 时遇到了一些问题。我想开始创建应用程序,桌面或移动,至少是一些东西。所以我发现我可以为它使用 JavaFX 库。但据我所知,它被排除在 JDK 9 之外。我实际上在 Ubuntu 18 上使用 OpenJDK 11(尽管 Eclipse 写道我有 JavaSE 10 环境,这也是我有点困惑的地方)并且我安装了 OpenJFX使用 sudo apt install openjfx
我无法让 Eclipse 与 JavaFX 一起工作。
我不确定不将 JDK 8 与包含的 JavaFX 一起使用是否有任何意义,但无论如何,我如何在 Eclipse 中的这种情况下使用 JavaFX?
最佳答案
您的帖子中有多个要点需要澄清。我将尝试用不同的要点来回答它们:
But as far as I understood, it(JavaFX) was excluded from JDK 9.
从 JDK 11 开始,JavaFX 将与 Oracle JDK 分离。我强调 Oracle JDK,因为 JavaFX 从来不是 OpenJDK 的一部分。甚至在 OpenJDK 8 中也不行。
I'm actually using OpenJDK 11 on Ubuntu 18 (Though eclipse writes I have JavaSE 10 environment, that is where I'm also a bit confused)
要在 Eclipse 中支持 Java 11,您需要安装 Java 11 Support for Eclipse Photon插件。
这里有一些Examples on how to run Java 11 applications in Eclipse
I installed openjfx using
sudo apt install openjfx
and I can't make eclipse work with JavaFX.I'm not sure if there's any sense not to use JDK 8 with included JavaFX, but anyway, how can I use JavaFX in such conditions in eclipse?
由于 OpenJDK 11 或 Oracle JDK 11 不会与 JavaFX 捆绑在一起,您最好的选择是从 here 下载 JavaFX SDK。或 here并将它们加载到您的 IDE 中。
如果你习惯构建工具,可以直接使用JavaFX runtime jars which are available in Maven Central .
有关如何在 OpenJDK 11 上运行 JavaFX 11 的教程,您可以关注:
JavaFX 11 和 Eclipse
在撰写本文时,您需要 Eclipse 4.9M3使用 JavaFX 11。
一旦您拥有 eclipse、JDK 11 和 JavaFX 11 SDK,您可以选择创建:
- 基于模块的项目
- 非基于模块的项目(不需要
module-info.java
)
基于模块的项目
创建一个 Java 项目并将 Java FX 11 SDK 中的 JavaFX jar 添加到项目的模块路径。
创建一个module.info
并声明它对javafx.controls
模块的依赖。 javafx11
是包含您的 Java 文件的包的名称。
module javafx11 {
requires javafx.controls;
exports javafx11;
}
运行程序\o/
非基于模块的项目
创建一个 Java 项目并将 JavaFX 11 SDK 中的 JavaFX jar 添加到项目的模块路径或类路径中。
将以下 JVM args 添加到项目的运行配置中:
--module-path=path-to-javafx-skd/lib --add-modules=javafx.controls
运行程序\o/
关于java - 如何在 Eclipse 中使用 JavaFX 11?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52013505/