JavaFX 附带 JDK 8?

Posted

技术标签:

【中文标题】JavaFX 附带 JDK 8?【英文标题】:JavaFX comes with JDK 8? 【发布时间】:2016-06-28 16:37:03 【问题描述】:

我有多个关于 JavaFX 的问题。

JavaFX 是否随 JDK 8 一起提供? JavaFX 是否也需要自己的运行时环境?

我查看了我的计算机(我安装了 JDK 和 JRE),但找不到 JavaFX。这是否意味着 JavaFX 拥有自己独立的运行时环境和开发工具包?如果是这样,我在哪里可以找到下载链接?

如果它已经以某种方式下载到我的计算机上,JavaFX 是如何工作的?是和 Swing 相似还是完全不同?


为偶然发现这个问题的人编辑 2020 年 1 月:使用 JDK 11,JavaFX 是独立的;请参阅下面的jewelsea的答案。 Antonio Raposo 的回答适用于 JDK 8,但请注意它已过时。

【问题讨论】:

它是一个用java构建的gui框架,所以它不是一个单独的语言或实体。我对 JavaFX 也很陌生,有些事情是相似的; gui 事件调度线程,和你操作 gui 对象的方式非常相似 【参考方案1】:

2020 年 1 月更新

JDK 8 版本的 JavaFX 现已过时。

现代 JavaFX 版本 (11+) 目前可从以下位置获得:

https://openjfx.io/ - 文档 https://gluonhq.com/products/javafx/ - 托管下载

大多数 OpenJDK 或 Oracle JDK 版本通常不标配 JavaFX 库。相反,JavaFX 可作为一组单独的库、模块和 SDK 使用。上面的 openjfx.io 链接中包含有关在运行时分发中包含 JavaFX 以及使用 JavaFX 进行开发的说明。

Liberica JDK distributions by BellSoft 目前随附包含的 JavaFX 库和 SDK 工具。或者,您可以从https://adoptopenjdk.net/ 选择不包含 JavaFX 的 OpenJDK 版本,并通过遵循https://openjfx.io/ 的安装说明或作为 maven 或 gradle 依赖项添加 JavaFX 发行版(也记录在 openjfx.io 链接中)。

JavaFX 8 tutorials hosted at Oracle 质量很高,仍然适用于更高版本的 JavaFX。

JDK 8 的原始答案

JavaFX for Oracle Java 8 不是单独安装。 JavaFX 包含在Oracle JDK 8 中,在 OS X、Linux x86 和 Windows 上运行。了解更多信息的最佳地点是Oracle Client Technologies documentation for JavaFX。

Oracle 曾经也为 Linux ARM 分发二进制版本,但我认为现在只能通过编译 OpenJDK 源代码获得。

OpenJDK 8 二进制安装(例如 Ubuntu 附带的安装)目前默认不包含 JavaFX。对于 Ubuntu,您似乎可以为 JavaFX 安装一个单独的 apt 包。一位用户评论了另一个答案,该命令的命令是:sudo apt-get install openjfx(尽管我没有安装 Ubuntu 来试用它)。有关 OpenJDK 和 JavaFX 关系的更多信息,请阅读:JavaFX and OpenJDK。

您可能会感到困惑的是,JavaFX (1.x) 的早期版本作为单独的下载和开发工具包分发,并实现了一种称为 JavaFX Script 的新语言,它不同于 Java。但是,该早期版本的 JavaFX 现在不再受支持且不应使用。从 JavaFX (2.x) 开始,JavaFX 系统被完全重写以提供直接的 Java API 并且不再使用 JavaFX 脚本。从 Java 8 开始,JavaFX 已完全集成到 Oracle JDK 中,并且不再由 Oracle 作为单独的下载分发。作为 Oracle JDK 一部分的 Java GUI 的 Java API,JavaFX 与 Swing 类似(以这种方式);因此,Oracle JDK 以 Swing 和 JavaFX 的形式提供了不同的替代工具包。

【讨论】:

那么如何让 JavaFX 与 Oracle Open JDK 8 一起工作? 没有“Oracle Open JDK 8”之类的东西。有Oracle JDK 8,其中包括JavaFX,还有Open JDK 8,它不包括JavaFX,但可以通过much work 与OpenJFX 8 一起使用。它们是不同的东西。我不建议使用其中任何一个,因为两者都已过时。而是按照openjfx.io 处的说明使用最新的 Java 和 JavaFX 版本。【参考方案2】:

JavaFX 与 JRE 8 和 JDK 8 捆绑在一起。JavaFX jar 为 jfxrt.jar,位于 ext 文件夹中。 要部署应用程序,唯一的必要条件是正确安装 JRE 8。

JavaFX 和 Swing 之间有相似之处,但也有不同之处。最好的开始方法是阅读 JDK 站点上提供的文档。请注意阅读 JavaFX 8 页面而不是 JavaFX 2 页面,因为存在一些差异,并且一些旧示例可能无法正常工作。

您可能还对我在我的博客A Cup of Java 中发布的一个或其他示例感兴趣

【讨论】:

以上是关于JavaFX 附带 JDK 8?的主要内容,如果未能解决你的问题,请参考以下文章

在 Eclipse Luna 中使用 JavaFX (JDK 1.8.0_05) 不起作用

JavaFx Webview JDK 8 无法加载自签名证书

javafx Scene Builder 8.5.0 是不是支持 java jdk 17?

javafx 8 兼容性问题 - FXML 静态字段

javafx 8 兼容性问题 - FXML 静态字段

Linux 中的 JDK 1.7/1.8 中缺少 JavaFX?