关于Java:JDK 8附带JavaFX吗?

JavaFX comes with JDK 8?

关于JavaFX,我有多个问题。

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

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

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

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


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

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

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


2020年1月更新

JFX 8版本的JavaFX现在已过时。

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

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

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

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

Oracle上托管的JavaFX 8教程质量很高,仍然与更高版本的JavaFX版本一起使用仍然有意义。

JDK 8的原始答案

Oracle Java 8的JavaFX不是单独安装。 JavaFX包含在OS X,Linux x86和Windows上运行的Oracle JDK 8中。了解更多有关此内容的最佳位置是JavaFX的Oracle客户端技术文档。

Oracle过去也曾为Linux ARM发行二进制版本,但我认为现在只能通过编译OpenJDK源代码才能使用。

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

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